2009-10-27 201 views
1

我需要一个Windows shell脚本,它将重新部署我的.ear文件。我写了一个:JBoss应用服务器重新部署

net stop "JBAS50SVC" 
copy /y O:\TEMP\app.ear C:\jboss-4.2.3.GA\server\default\deploy\app.ear 
net start "JBAS50SVC" 

但问题是,当我试图停止JBoss服务不完全卸载本身(我的建议),所以当我启动它没有应用程序部署在JBoss中。

回答

1

通常重新部署自包含在jboss中的应用程序只需要更换耳朵。如果应用程序还有更多(例如必须进入jboss lib目录的类),则可能需要重新启动。

关于如何重新启动它,这取决于你用什么来启动jboss作为服务。一些服务启动者在启动后并不实际控制jvm,因此重新启动服务只会启动第二个实例。您可以使用JBOSS_HOME/bin目录中的关闭脚本(shutdown.bat)关闭jboss,然后部署并重新启动服务。请务必在执行此操作时暂停,因为shutdown命令将发出关闭请求,服务器可能仍在运行。

0

您可能想要检查JBoss community wiki这一点,毫无疑问比批处理文件更容易和更可靠的方法。

停止服务器不应该取消部署应用程序 - 这没有多大意义。

+0

我停止服务只是为了复制我的新.ear文件。我不想使用自动部署功能,因为在这种情况下,JBoss在一两个月后变得非常缓慢。 – baobab12 2009-10-27 17:06:33

1

您可以将EAR文件复制/重命名为部署目录。 JBoss会自动为您重新部署。

1

如前所述,默认情况下,jboss会自动部署您复制到部署目录中的所有内容。

如果没有,请检查您是否正在使用不自动部署ear文件的虚拟主机。

<Host name="vhost2" autoDeploy="false" .... /> 

除此之外,我觉得这是一个完全不同的错误,因为jboss为您负责部署。请检查日志文件中的应用程序启动错误。

+0

是的,jboss自动部署文件,但是当我使用自动部署功能和JBoss已经工作了一个月或更长时间时,它变得非常慢。 – baobab12 2009-10-27 17:01:29

2

您提到过,当您使用autoDeploy并使服务器运行一个月或更长时间时,JBoss变得非常慢。这很可能是因为你的永久世代记忆在不断增加。见this related question

我认为最好的做法是使用autoDeploy功能和其他建议一样,并定期重新启动整个服务器以清除PermGen。有几种方法可以跟踪PermGen的使用情况;我将以下内容添加到run.conf中的JAVA_OPTS中:

-XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -Xloggc:$LOGDIR/gc.log 
+0

谢谢!似乎这是唯一可行的解​​决方案。 – baobab12 2009-10-28 06:21:36

相关问题