(本文档仅供参考)
新部署的环境,启动后访问smartbi服务报404错误,经分析日志发现报如下错误:
严重: Unable to process Jar entry [com/aspose/pdf/TextState$1.class] from Jar [jar:file:/usr/local/software/apache-tomcat-7.0.39/webapps/mobile/WEB-INF/lib/cells.pdf-11.3.0.jar!/] for annotations
java.util.zip.ZipException: invalid distance too far back
或者是如下错误:
严重: Unable to process Jar entry [com/aspose/pdf/TextState$z1.class] from Jar [jar:file:/usr/local/software/apache-tomcat-7.0.39/webapps/mobile/WEB-INF/lib/cells.pdf-11.3.0.jar!/] for annotations
java.util.zip.ZipException: invalid stored block lengths
1、首先需要将war包里边自带的tool.jar移除,用压缩工具打开smartbi.war ,注意不是解压,然后找到 \smartbi\WEB-INF\lib\tool.jar ,进行删除。
2、通过weblogic控制台卸载smartbi应用,然后再重新将这个删除了tool.jar的smartbi.war包部署到weblogic上。
3、如果删除了war包上的tool.jar包后重新部署后,验证下在weblogic加载的jdk下的tool.jar包能否被正常调用 (一般jdk的tool.jar包是在JDK的lib目录下,这里是放到了JDK的bin目录):
重启后,直接进入【系统监控】--》【类查找】:sun.tools.attach.LinuxAttachProvider
然后再点击【线程】看是否可以正常打印:
如果可以,就不需要进行下边步骤了。下次更新包的时候,记得删除掉war包里边的tool.jar重新部署即可。
如果还是不行,那就按照以下步骤继续修改。
4、找到weblogic的启动文件 startWebLogic.sh ,记得备份。然后对这个文件如下部分进行修改,
修改部分如下,红色字体部署就是指定JDK引用的tools.jar路径:
echo "starting weblogic with Java version:"
${JAVA_HOME}/bin/java ${JAVA_VM} -version
CLASSPATH="${CLASSPATH}:/home/jdk1.8.0_144/bin/tools.jar"
注意为了保证tools.jar可以正常被调用,所以需要修改下tool.jar的权限:
然后保存,并重启weblogic,然后再重新进入系统监控看【类查找】能否找到这个指定的路径:sun.tools.attach.LinuxAttachProvider
以及验证【系统监控】--》【线程】能否正常打印,
如果可以正常找到tools.jar,并且可以正常打印线程,说明成功指定jdk调用的tools.jar包。