页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

(本文档仅供参考)

问题:

新部署的环境,启动后访问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        进入【系统监控】-》【线程】,点击会出现【未指定错误Caused by: java.lang.NoClassDefFoundError: Could not initialize class sun.tools.attach.LinuxVirtualMachine

        Image Added        

         详细错误日志如下:

代码块
linenumberstrue
collapsetrue
at smartbi.framework.rmi.ClientService.execute(Smartbi:134)
 at ...(...)
 at smartbi.freequery.migrate.ExportLog.exportThreadDumpByAttach(ExportLog.java:692)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class sun.tools.attach.LinuxVirtualMachine
 at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:46)
 at smartbi.freequery.migrate.ExportLog.exportThreadDumpByAttach(ExportLog.java:692)
 at smartbi.freequery.migrate.ExportLog.exportThreadDumpInfo(ExportLog.java:477)
 at smartbi.management.LocalManagementHandler.getCurrentThreadDumpInfo(LocalManagementHandler.java:338)
 at smartbi.management.ManagementService.getCurrentThreadDumpInfo(ManagementService.java:159)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at smartbi.framework.rmi.ClientService.execute(Smartbi:118)
 at smartbi.framework.rmi.RMIServlet.processExecute(RMIServlet.java:199)
 at smartbi.framework.rmi.RMIServlet.doPost(RMIServlet.java:143)
 at javax.servlet.http.HttpServlet.service$WTImpl$javax$servlet$http$HttpServlet(HttpServlet.java:727)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
 at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
 at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
 at smartbi.extension.ExtensionFilter$2.doFilter(ExtensionFilter.java:138)
 at smartbi.extension.ExtensionFilter$1.doFilter(ExtensionFilter.java:127)
 at smartbi.extension.ExtensionFilter.doFilterInternal(ExtensionFilter.java:150)
 at smartbi.extension.ExtensionFilter.doFilter(ExtensionFilter.java:53)
 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
 at smartbi.framework.rmi.TransactionFilter.doFilter(Smartbi:97)
 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
 at smartbi.freequery.filter.GZIPFilter.doFilter(GZIPFilter.java:111)
 at smartbi.freequery.filter.Filter.doFilter(Filter.java:36)
 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
 at smartbi.freequery.filter.CheckIsLoggedFilter.doFilter(CheckIsLoggedFilter.java:99)
 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
 at smartbi.freequery.filter.TraceFilter.doFilter(TraceFilter.java:59)
 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
 at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
 at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
 at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
 at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
 at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
 at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
 at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
 at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
 at weblogic.work.ExecuteThread.run(ExecuteThread.java:178

解决方案:

        原因:这是因为无法正常调用产品内置的tools.jar包,需要通过调用jdk上的tools.jar解决。

        具体解决方案:

        1、首先需要将war包里边自带的tool.jar移除,用压缩工具打开smartbi.war ,注意不是解压,然后找到 \smartbi\WEB-INF\lib\tool.jar ,进行删除。

...

       4、找到weblogic的启动文件 startWebLogic.sh ,记得备份。然后对这个文件如下部分进行修改,

             

            修改部分如下,红色字体部署就是指定JDK引用的tools.jar路径:

            echo "starting weblogic with Java version:"

...

           如果可以正常找到tools.jar,并且可以正常打印线程,说明成功指定jdk调用的tools.jar包。

           离线文档:weblogic指定jdk加载的tools.docx

           

Viewtracker