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.NullPointerExceptionat 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}
3. 在一些liunx系统(如红旗linux)系统中,需要在JITC_COMPILEOPT前加上export。
export JITC_COMPILEOPT=COMPILING:SKIP{com/runqian/report4/view/html/HtmlCell}{getStyle}
注意 | |
---|---|
注意:设置完JIT的相关属性后,需要重起操作系统才会生效。 |