Websphere中引起的空指针错误的解决办法小结
注:如果设置了jit还是不行,请试一下重启操作系统。
在websphere中使用润乾报表,多次访问同一张报表有时会出现空指针的错误。例如:
[2007-11-08 10:15:57] runqianReportLogger : [ERROR] - java.lang.NullPointerException
[2007-11-08 10:15:57] runqianReportLogger : [DEBUG] - 开始生成HTML……
[2007-11-08 10:15:57] runqianReportLogger : [ERROR] - error:java.lang.NullPointerException at com.runqian.report4.view.html.HtmlCell.getStyle(HtmlCell.java(Compiled Code)) at com.runqian.report4.view.html.HtmlReport.generateHtml(HtmlReport.java(Compiled Code)) at com.runqian.report4.view.html.HtmlReport.generateHtml(HtmlReport.java:200) at com.runqian.report4.tag.HtmlTag.doStartTag(Unknown Source:730) at com.ibm._jsp._002._jspx_meth_report_html_0(_002.java:110)
此问题是由于JVM的JIT 引起的 。我们禁用掉webserver的JIT此问题即可解决。
常见的解决方法:
Windows 下的Websphere
1.禁用webspeere的JIT进入WebSphere的管理控制台,打开“应用服务器”>“server1”>“进程定义”,进入“Java虚拟机”,选中“禁用 JIT”,然后重新启动websphere。此方法简单,但禁用JIT后性能比较差,对于一些对性能要求比较高的不适用。
2.设置JITC_COMPILEOPT选项跳过JIT与润乾有冲突的方法。
进入was安装目录 \IBM\WebSphere\AppServer\bin\setupCmdLine.bat 把SET JITC_COMPILEOPT=COMPILING;SKIP{com/runqian/report4/view/html/HtmlCell}{getStyle}添加到setupCmdLine.bat重启websphere即可。
非windows系统中设置JITC_COMPILEOPT选项时需注意的问题:
1.在was安装目录 \IBM\WebSphere\AppServer\bin\setupCmdLine.sh中设置。
2.设置时不用加set;且COMPILING后一定要用冒号,不能用分号。
JITC_COMPILEOPT=COMPILING:SKIP{com/runqian/report4/view/html/HtmlCell}{getStyle}