我在QA中对JBoss 4.2上的这种讨厌的行为感到懊恼,并且在我们投入生产并找到其他一些角落案例之前,我想将它扼杀在萌芽状态。如何强制在JBoss 4.2中重新编译jsps?
一个jsp卡列斯其具有以下特征的方法:
public void methodName(String arg)
这变为:
methodName("param");
:
public void methodName(String arg, Object... args)
A-预先存在的JSP通过调用此方法
在部署修改后的代码时,JBoss没有重新编译JSP,导致QA崩溃。给jsp添加一个愚蠢的评论解决了这个问题(JBoss认识到JSP改变并重新编译了它)。
在JBoss上有一个强制重新编译JSP的设置吗?
编辑:为了澄清答案中的一些观点,设置是JSP是属于耳朵的一部分的战争的一部分。耳朵里有所有的类,放在一个罐子里。
关于预编译的愿望,如果系统不认为jsp需要编译,会不会预编译强制重编译?它似乎并不如此。这里的错误不是一个compliation错误,它是一个方法调用错误,因为“已更改”(在字节码级别,而不是在代码级别)方法签名。
附录:请注意,尽管JSP确实发生了更改,但即使使用接受的答案标志集,JSP也不会重新编译,但我们最近在生产中经历过。那里存在主要的bug,但是无论如何,JBoss正常关闭。此时它将成为旧版本的JBoss,但如果您仍在使用它,删除工作内容和tmp目录是唯一可行的方法。
我并没有改变接受的答案,仅仅是因为它真的到了问题所在的地步。 JBoss的错误是一个单独的问题。
谢谢,但在生产部署期间实际上很难做到这一点。 – Yishai 2009-06-04 21:46:44