![]() |
1
11
如果JSP是作为JAR部署的EAR的一部分,那么我不清楚为什么没有重新编译JSP。war文件中的jsp是否比上次部署时jboss编译的类文件有更新的时间戳?如果没有,在部署之前,您不能触摸JSP作为构建war/ear的一部分吗?[我指的是使用unix“touch”命令,而不是手动触摸每个JSP文件。] 或者,$jboss/server/default/deploy/jboss-web.deployer/meta-inf/jboss-service.xml中的deleteWorkDironContextDestroy设置可能是您要查找的内容。默认情况下它是错误的,但将其设置为真可能是您需要的。我认为这应该在重新部署时删除JSP的类文件,以便在首次访问每个JSP时重新创建它们。 |
![]() |
2
1
我不知道设置,但是在JBASS实例的工作目录中删除生成的Java类文件将导致JSP下次调用它时被重新编译。 |
![]() |
3
1
您可以修改jboss启动脚本来显式删除存储编译的JSP的“tmp”和/或“work”目录。JBoss将别无选择,只能重新编译它们。 不是很微妙,但它会起作用。 |
![]() |
4
0
您可以选择在构建时预编译所有JSP。这将很快标记所有编译错误。 你也可以在生产中这样做-加速第一次访问,但我感觉你更希望这是一个质量保证步骤,而不是任何其他。如果是这样,您可以将预编译步骤添加到您选择的构建工具中的测试阶段,也可以添加到您的CI环境中。这将保证不编译的JSP不会脱离测试。 有关运行预编译任务的详细信息,请参阅此部分: 希望这有帮助。 |
![]() |
5
0
一些JSP容器(根据JSP 1.2规范的第8.4.2节)支持预编译JSP页面的功能。 要预编译JSP页,请使用查询字符串访问该页。JSPX预编译
不会执行JSP页。如果容器支持预编译,则在必要时将编译JSP页。 |
![]() |
6
0
帕布罗吉姆走对了。你只需要更多的信息就能全面了解正在发生的事情。我就是这样理解的。 在prod中,您更改了一个JSP,它需要重新编译其他JSP。为了重新编译它们,必须发生两件事之一
如果您仍然需要验证所有JSP的工作,那么它们都需要 precompiled using an ant task . 这还允许您在war文件中使用预编译的JSP部署war文件。这应该能解决你的问题。 如果您的文件不是以战争文件部署的,而是以分解格式部署的,那么您应该 seriously consider packaging your web app 在用于部署的战争文件中。这使得它成为在环境之间部署的一个很好的包。 |