我遇到了一个奇怪的问题,我在论坛上找不到任何相关内容。我希望也许其他人已经看过它并且可以给我一些见解。
我在Windows下运行tomcat 6.0。我们的应用程序使用Archibus设施管理系统。对于UI屏幕,Archibus使用自己的自定义XML架构,用户界面代码称为View文件。在运行时,Archibus将这些View文件转换为jsp,然后Tomcat将jsp转换为java,然后转换为class,文件。
我遇到的情况是Tomcat没有以一致的方式将jsp文件转换为java文件。通常(当一切正常时)Tomcat将selfCertWelcome.jsp转换为3个文件:selfCertMain_jsp.java,selfCertMain_jsp.class& selfCertMain_jsp $ helper.class。
大约每20次左右,Tomcat会以不同的方式转换jsp。它创建了2个文件selfCertMain_jsp.java& selfCertMain_jsp.class。当发生这种情况时,似乎selfCertMain_jsp.class内联通常放入selfCertMain_jsp $ helper.class的代码。不幸的是,当内联代码时,它无法正确加载。没有生成错误消息,但屏幕显示为空白(未显示任何内容)。
在生产中,每晚都会重新启动应用服务器,并删除schemaCompiled文件夹。这意味着每天都会重新创建jsp文件。有时当它们被创建时会出现这个问题并且纠正它的唯一方法是删除jsp文件并让Tomcat重新编译它,希望它能正确编译它。
我验证了Archibus创建的jsp文件在出现问题时是否相同,何时没有。因此我觉得Tomcat存在问题。
有没有人见过这样的东西?关于如何解决这个问题的任何建议?
提前致谢, 马特