Java JBoss 5.1显示了;未能处理更改“;在部署战争时

Java JBoss 5.1显示了;未能处理更改“;在部署战争时,java,jsp,jboss,war,Java,Jsp,Jboss,War,我对这一点很陌生,所以我很有可能做错了什么,但我只是想用JBoss5.1编写一些JSP。我编写JSP页面(非常基本,只是一些HTML和一些输出,以确保JSP实际正在被处理),然后尝试构建WAR并使用以下命令热部署它: jar -cvf jsptests.war *.jsp WEB-INF copy jsptests.war "%JBOSS_HOME%\server\default\deploy" 如果我在没有运行JBoss的情况下执行此操作,那么它将复制到deploy文件夹,并在我启动JBo

我对这一点很陌生,所以我很有可能做错了什么,但我只是想用JBoss5.1编写一些JSP。我编写JSP页面(非常基本,只是一些HTML和一些输出,以确保JSP实际正在被处理),然后尝试构建WAR并使用以下命令热部署它:

jar -cvf jsptests.war *.jsp WEB-INF
copy jsptests.war "%JBOSS_HOME%\server\default\deploy" 
如果我在没有运行JBoss的情况下执行此操作,那么它将复制到deploy文件夹,并在我启动JBoss后显示,但是,如果我在运行JBoss时执行相同的操作,我会在控制台中看到以下错误:

WARN  [org.jboss.system.server.profileservice.hotdeploy.HDScanner] (HDScanner) Failed to process changes
java.lang.RuntimeException: Error while adding re-deployments

我在其他一些论坛上也看到过类似的情况,但在任何地方都找不到答案。谢谢

当文件未完全复制时,会发生这种情况,但JBoss的热部署扫描程序会在那里看到一个.war文件并尝试读取它。解决此问题的一种方法是移动/重命名文件,而不是复制它,因为该操作在大多数操作系统上都是原子操作(即JBoss将无法“查看”)直到操作完成,它才会读取未完成的文件)

此外,有时它似乎可以工作,但在浏览器中查看时,生成的页面不会反映我的更改。这通常意味着hotdeploy无法工作。我建议的做法是将沉重的JBoss留给生产部署,在开发过程中使用更轻、更快的应用服务器进行热部署,比如jetty。Jetty可以很容易地配置为在您键入代码更改时提取代码更改,因此您可以立即看到modif(GWT就是这样使用的)。