4

我有一个带有 Glassfish 3.1.2.2、MySQL 5.5 服务器和一个基于 Swing 的独立客户端应用程序的 3 层应用程序设计。

我目前面临如何在 Glassfish 上自动更新/重新部署服务器端应用程序(* .ear 文件)的问题。

我的客户会定期检查我存放更新文件(client-jar-files 和 server-ear-files)的更新服务器上的新更新。一旦有新版本,客户端就会从我的更新服务器下载它并将其存储到连接到 Glassfish 实例的数据库中。

我的问题是如何以编程方式将新的 *.ear 文件重新部署到 Glassfish ?

我尝试通过打开一个新进程并使用 Glassfish 附带的 asadmin 工具来强制重新部署来解决此问题:

Runtime.getRuntime().exec("./asadmin --user admin --passwordfile "+getPathToPwdFile()+" deploy --force=true "+getPathToNewEarFile());

但是这个解决方案很糟糕,因为在重新部署期间,进程在进程终止之前被剥离,因为派生进程的服务器应用程序被重新部署......这会导致应用程序服务器上出现一些错误。

Glassfish v3 的 JMX / AMX 项目似乎已经死了(2009 年最后一次更新)......

有人对这个问题有适当的解决方案吗?

4

1 回答 1

2

以编程方式将 ear 文件复制到 auto Glassfish 的 autodeploy 文件夹怎么样?默认的自动部署检查间隔是每 2 秒,但您可以增加此间隔以使您的进程有足够的时间完成。

请参阅http://docs.oracle.com/cd/E18930_01/html/821-2417/gilfm.html#fvxze

于 2013-01-25T12:13:14.670 回答