WAR不会通过自动部署在Glassfish中重新部署

时间:2013-03-17 23:53:40

标签: deployment glassfish-3 autodeploy

我第一次将它放在domains/domain1/autodeploy目录下时,我能够部署我的WAR。但是,在进行一些更改并将WAR重新部署到autodeploy目录后,更改未被提取。我甚至删除了domains/domain1/applications/myapp(其中myapp对应于正在部署的myapp.jar)但未重新部署WAR。服务器已通过asadmin启动和停止:

asadmin start-domain
asadmin stop-domain

我做错了什么,以至于应用程序无法重新部署?

更新:我尝试手动(重新)部署(也使用--force选项)WAR,但在server.log中遇到以下错误:

[#|2013-03-17T20:47:36.177-0400|SEVERE|glassfish3.1.2|javax.enterprise.system.tools.admin.org.glassfish.deployment.admin|_ThreadID=72;_ThreadName=Thread-2;|Application with name myprojectname is already registered. Either specify that redeployment must be forced, or redeploy the application. Or if this is a new deployment, pick a different name|#]

我不知道如何取消注册/取消部署曾经部署过的应用。我尝试删除domain.xml中对我的应用的所有引用,但它不起作用。这似乎是软件中一个非常基本的错误。

2 个答案:

答案 0 :(得分:8)

我知道很久以前就已经回答了这个问题,但是如果有其他人像我一样通过谷歌来到这里,我还有另一个可能的答案......

遇到同样的问题后,我发现以下内容...... autodeploy / .autodeploystatus目录仍然有一个文件引用我试图通过将war复制到autodeploy目录来重新部署的应用程序。我不得不删除autodeploy / .autodeploystatus目录中的文件,然后在将war复制到autodeploy目录时部署了我的应用程序。

希望有所帮助。

注意:显然,对于使用glassfish的其他人it is obvious,您必须从隐藏的.autodeploystatus目录中删除所有这些内容,以使您的重新部署工作。为什么这对他们来说很明显?我们可能永远不会知道。

答案 1 :(得分:3)

您可以通过asadamin取消部署:

asadmin undeploy yourapplication

您还可以访问glassfish管理控制台http://localhost:4848并通过图形界面取消部署(查看应用程序)。

一般来说,重新自动部署应该可行,但我建议使用普通部署方法或某些IDE(如NetBeans)的增量重新部署...