是否有一些简单的方法可以在 JBoss 部署 EAR 内的 JAR 时执行代码?

发布于 2024-09-08 06:08:08 字数 317 浏览 5 评论 0原文

我计划将 EAR 打包应用程序部署到 JBoss v4.2 中,作为包含 EAR 内容的文件夹。到目前为止,EAR 都是作为单个文件部署的。我希望能够替换单个 JAR 而无需重新启动应用程序。

是否有任何类型的事件侦听器注释可用于在部署时注册这些 JAR 文件?这个想法是像插件一样部署一些实现已知接口的功能。这些插件应在 Seam webapp 环境中使用,并且可以动态地与更新版本进行交换。

有什么想法吗?谢谢。

I plan to deploy an EAR packaged application into JBoss v4.2 as a folder containing the content of the EAR. Until now the EAR is deployed as a single file. I hope to be able to replace single JARs without the need to restart the application.

Is there any kind of event listener or annotation that can be used to register those JAR files upon deployment? The idea is a plugin like deployment of some features implementing a known interface. The plugins shall be used in a Seam webapp environment and may be exchanged with updated versions on the fly.

Any ideas? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

固执像三岁 2024-09-15 06:08:08

AFAIK,这是不可能/不支持的。使用爆炸式 EAR 时,触摸单个模块将触发整个 EAR 的热部署。

轻量级 Java Web 应用程序开发:利用 EJB3、JSF、POJO 和 Seam

3.4.2.热部署

另一个有助于敏捷的 JBoss 功能
发展是爆炸档案。这
EAR、EJB3 JAR 和 WAR 文件不是
JBoss 中必需的 JAR 文件
容器。它们可以是目录
包含 JAR 的内容
文件。例如,而不是
将 dvdcatalog.ear 文件部署为
单个文件,您可以将其部署为
目录。

通过分解目录,您可以
对任何单个 JSP 页面进行更改或
应用程序中的 Java 类文件
当服务器正在运行时。然后你
可以触摸 META-INF/application.xml
分解目录中的文件(即
将文件的时间戳更新为
current) 重新部署整个 EAR
应用。这进一步节省了
大量时间用于快速
扭转局面的敏捷开发人员。

您正在寻找的东西听起来并不简单。它需要检测更改,卸载来自该 JAR 的已加载类定义(假设此信息已知),重新加载类(类似的事情,但我很确定我过于简单化了)。也许更多的是 OSGI 服务器的工作。

另请参阅

AFAIK, this is not possible/supported. When using an exploded EAR, touching an individual module would trigger the hot deployment of the whole EAR.

From Lightweight Java Web Application Development: Leveraging EJB3, JSF, POJO, and Seam:

3.4.2. Hot Deployment

Another JBoss feature that helps agile
development is exploded archives. The
EAR, EJB3 JAR and WAR files are not
necessarily JAR files in the JBoss
container. They can be directories
containing the contents of the JAR
file. For instance, instead of
deploying the dvdcatalog.ear file as a
single file, you can deploy it as
directory.

With the exploded directories, you can
make changes to any single JSP page or
Java class file in the application
while the server is running. Then you
can touch the META-INF/application.xml
file in the exploded directory (i.e.,
update the file's timestamp to
current) to re-deploy the entire EAR
application. This further saves
significant amount of time for rapid
turn-around agile developers.

What you're looking for doesn't sound simple. It would require detecting the change, unloading loaded class definitions coming from that JAR (assuming this information is known), reloading classes (something like that but I'm pretty sure I'm oversimplifying). Maybe more a job for an OSGI server.

See also

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文