V8.5及以上版本,由于跨库查询功能需要用到jdk1.8,所以如果需要使用该功能的话,必须将JDK版本更新为1.8;中间件支持1.8的最低版本情况:Tomcat 7 , WebLogic 12.1.3,Websphere 8.5.5.9 。
一、准备工作
在部署Smartbi到 Weblogic 应用服务器之前,需要先设置 Weblogic 环境变量。
在其中填加 Java 虚拟机配置,建议安装64位WebLogic,最大Java内存设置8G以上。
- Windows环境:<weblogic_domain>\bin\setDomainEnv.cmd
set JAVA_OPTIONS=%JAVA_OPTIONS% -Dfile.encoding=GBK -Duser.region=CN -Duser.language=zh -Djava.awt.headless=true -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError
- Linux环境:<weblogic_domain>/bin/setDomainEnv.sh
JAVA_OPTIONS="$JAVA_OPTIONS -Dfile.encoding=GBK -Duser.region=CN -Duser.language=zh -Djava.awt.headless=true -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError"
- 修改setDomainEnv.sh 的内存大小:
Weblogic 12.2.1.3.0版本由于安全问题,默认禁用了rmi协议,可以通过在启动脚本中增加 -Dweblogic.oif.serialFilterScope=weblogic 参数来配置smartbi集群。
Weblogic 12.2.1.4.0版本由于安全问题,默认禁用了rmi协议,可以通过在启动脚本中增加 -Dweblogic.oif.serialFilter=java.rmi.server.* 参数来配置smartbi集群。
- weblogic12.2.1.4.0版本部署smartbi集群的jvm参数:
JAVA_OPTIONS="$JAVA_OPTIONS -Dfile.encoding=GBK -Duser.region=CN -Duser.language=zh -Djava.awt.headless=true -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -Dweblogic.oif.serialFilter=java.rmi.server.*" export JAVA_OPTIONS
- 可在启动weblogic的时候确认修改参数是否生效:
二、操作步骤
1. 启动控制台
cd /domains/base_domain/servers/AdminServer mkdir security vi security/boot.properties username=weblogic password=XXXXXXX(密码);
接着执行
nohup ./startWeblogic.sh &
smartbi.war部署前操作
Smartbi war包部署前需要删除四个jar包,避免安装部署时报错。
具体需要删除四个的jar如下:【smartbi.war/ WEB-INF/lib】:
xmlbeans-3.0.0.jar
wstx-asl-3.2.4.jar
cglib-nodep-2.1_3.jar #注意weblogic 14.1.1部署时,无需删除此jar文件
xml-apis-1.4.01.jar
增加jaxb.properties文件
把附件的jaxb.properties 文件增加到 smartbi\WEB-INF\extensions\smartbix.ext\META-INF\lib\SmartbiX-AugmentedDataSet-0.0.1.jar\smartbix\augmenteddataset\olap\schema。
具体操作如下:
1、smartbi.war用压缩工具打开,进入 WEB-INF\extensions
2、找到smartbix.ext ,使用解压缩工具打开扩展包
2、在smartbix.ext打开后的目录,进入 META-INF\lib,找到SmartbiX-AugmentedDataSet-0.0.1.jar 继续使用解压缩工具打开
3、在SmartbiX-AugmentedDataSet-0.0.1.jar打开后的目录,进入smartbix\augmenteddataset\olap\schema目录,放入jaxb.properties文件,然后保存jar包,扩展包,war包
2.进入weblogic控制台
进入weblogic控制台:http://localhost:7001/console ,点击【配置应用程序】
3.安装
点击左侧的部署按钮,进入部署界面,点击 安装 按钮。
4.选择war包
选择修改好的smartbi.war包,下一步。
5.将此部署安装位应用程序
选择:将此部署安装位应用程序,下一步。
6.输入名称
输入名称:smartbi,其它不做任何的改变,下一步。
7.完成部署
点击 完成 按钮,等待部署完成,后点击 保存 按钮,会自动启动程序。
8.启动Smartbi应用
也可以回到部署页面,启动smartbi应用。
9.进行系统配置
登录Smartbi配置页面:http://localhost:7001/smartbi/vision/config.jsp,设置知识库信息,上传License文件,具体操作请参考 配置Smartbi。
10.重启服务器
配置完知识库信息,重新启动smartbi,进入登陆页面:http://localhost:7001/smartbi/vision/index.jsp。
三、 更新smartbi
1、上传新的war包到服务器
Smartbi war包部署前需要删除四个jar包,避免安装部署时报错。
具体需要删除四个的jar如下:【smartbi.war/ WEB-INF/lib】:
xmlbeans-3.0.0.jar
wstx-asl-3.2.4.jar
cglib-nodep-2.1_3.jar #注意weblogic 14.1.1部署时,无需删除此jar文件
xml-apis-1.4.01.jar
2、登录weblogic管理控制台,停止并删除smartbi
部署-控制,选择smartbi,立即停止
停止完成之后,删除smartbi
激活更改
确保旧smartbi相关文件彻底删除,需要在服务器上查看smartbi部署的相关目录是否删除
$cd /home/weblogic/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain/servers/
查看Adminserver目录(根据实际部署路径)中是否存在:exts-smartbi/和tmp/_WL_user/smarbi/目录,如果存在,手动删除。
3、登录weblogic管理控制台,部署新上传的smartbi
选择新上传的war包
保存-激活更改
等待smartbi部署完成,并启动为所有请求提供服务
访问smartbi,完成升级.
四、常见问题及解决方法
1、问题:Smartbi 在部署到Weblogic应用服务器上时,如果出现部署不上,或者部署之后启动应用时出现WstxIOException或XMLInputFactory之类的错误提示。
解决方案:请删除smartbi.war/ WEB-INF/lib目录中的geronimo-stax-api_1.0_spec-1.0.1.jar和wstx-asl-3.2.4.jar两个jar包,然后再重新部署。
2、问题:如果部署后可以正常使用,但是在“恢复知识库”过程中报错,日志中出现 Caused by: java.lang.ClassCastException: com.ctc.wstx.stax.WstxEventFactory cannot be cast to javax.xml.stream.XMLEventFactory 这样的错误。
解决方案:请删除smartbi.war/ WEB-INF/lib目录中的geronimo-stax-api_1.0_spec-1.0.1.jar和wstx-asl-3.2.4.jar两个 jar包,然后再重新部署。
3、问题:Smartbi 部署后启动过程中如果出现Caused by: org.hibernate.DuplicateMappingException: Duplicate query mapping ResourceTreeNode.getAllRoots这样的错误。
解决方案:请尝试删除smartbi.war/ WEB-INF/lib目录中的xercesImpl-2.9.1.jar 包,然后再重新部署。
4、问题:Smartbi 部署后启动过程中如果出现Caused By: java.lang.ClassCastException: net.sf.cglib.proxy.Enhancer$EnhancerKey$$KeyFactoryByCGLIB$$71c0a23 cannot be cast to net.sf.cglib.core.KeyFactory这样的错误。
解决方案:请尝试删除smartbi.war/ WEB-INF/lib目录中的cglib-nodep-2.1_3.jar包,然后再重新部署。
5、问题:Smartbi 部署后启动过程中如果出现Caused by: java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXTransformerFactory cannot be cast to javax.xml.transform.TransformerFactory、或者Caused by: java.lang.ClassCastException: weblogic.xml.jaxp.RegistryDocumentBuilderFactory cannot be cast to javax.xml.parsers.DocumentBuilderFactory这样的错误。
解决方案:请尝试删除smartbi.war/ WEB-INF/lib目录中的xml-apis-1.4.01.jar, xmlbeans-3.0.0.jar,然后再重新部署。
6、问题:Smartbi 部署后启动过程中如果出现User defined listener smartbi.extension.spring.SmartbiContextLoaderListener failed: XML错误. XML这样的错误。
解决方案:请按下面的步骤操作:
1)停止weblogic服务器;
2)删除<smarti_domain>\smartbi-config.xml,(<smarti_domain>指的是smartbi部署的域);
3)启动weblogic,重新登录http://localhost:7001/smartbi/config进行配置;
4)类冲突后,重新部署步骤。
7、问题:Smartbi 部署后excel导入如果出现org.apache.commons.fileupload.disk.DiskFileItem cannot be cast to org.apache.commons.fileupload.FileItem这样的错误。
解决方案:请尝试删除smartbi.war/ WEB-INF/lib目录中的common-fileupload.1.3.3.jar包,然后再重新部署。
8、问题:如出现上面的类冲突的情况。
解决方案:请按下面步骤操作:
1)在控制台中卸载已经部署好的smartbi应用;
2)停止weblogic服务;
3)在smartbiwar包中删除冲突的jar;
4)删除<smartbi_domain>\servers\Adminserver\tmp中的所有文件;
5)启动weblogic服务;
6)按照上面的步骤重新部署并启动smartbi。
9、问题:部署过程中,如果出现以下截图错误信息:
解决方案:由于第一步骤设置java虚拟机参数时,直接将wiki中的编码复制到Linux环境中,导致编码不对,无法识别。通过手工输入后,重新启动服务器正常启动。
10、问题:启动过程中报错 Caused by: java.lang.ClassNotFoundException: net.sf.cglib.proxy.Callback
解决方案:请尝试不删除smartbi.war/ WEB-INF/lib目录中的 cglib-nodep-2.1_3.jar包,然后再重新部署