4

我正在使用 MyEclipse,并且我使用自动部署我的 Web 和 EJB 项目的企业应用程序项目 (EAP)。

这些项目使用其他一些只是 POJO 的项目,即“简单”的 java 项目。就像图书馆之类的东西。

问题是,当我在“简单”java 项目中更改某些内容时,我必须在我的 JBoss 中重新部署我的整个 EAP 才能看到更改。

我想要的是一种在 EAP 中自动部署这些项目 (POJO) 的方法,因此热代码替换也适用于这些项目。

有任何想法吗?

4

7 回答 7

1

使用 JBoss,您只需将 JAR 放到server/default/deploy目录中 - 至少在旧版本中是这样 - 这要归功于JBoss 特殊的类加载器(讨厌或喜欢它)。

使用 WebLogic,您可以使用“共享库”。

在这两种情况下,所提到的特性都是专有的,即非标准的,使用它们会使您的应用程序不可移植。


对不起,我的意思是自动的。像这样:1)运行服务器 2)修改 Java 项目(库)上的一些东西 3)哦,哦,我必须手动重新部署库(制作一个 jar,复制并重新启动服务器)。我希望它自动进行更改,例如热部署。

啊,好的,现在明白了。在这种情况下,“Exploded Archive Deployment”是可行的方法,并且得到 MyEclipse(和 JBoss)的支持。引用7.1 J2EE 项目部署模式

MyEclipse 可以将 Web、EJB 和企业应用程序项目部署到任何支持 MyEclipse 的应用程序服务器。MyEclipse 支持两种部署打包方式:展开归档部署和打包归档部署。

  • Exploded Archive Deployment - 这是一种以开发为中心但非标准的 J2EE 应用程序打包和部署模型。与打包部署类似,应用程序的可部署资源被组织成符合 J2EE 标准目录/文件结构。但是,不是创建和部署单个存档文件,而是整个应用程序资源结构(目录和文件)由应用程序服务器连接器复制到服务器的特殊部署位置以用于展开存档。MyEclipse 部署服务,使用“按需同步”技术,将使所有 MyEclipse 项目部署与相应 MyEclipse 项目中的所有源更改保持同步。注意:J2EE 标准不支持展开部署,也不是所有应用服务器都支持。
于 2010-02-02T15:18:02.363 回答
1

您能否部署一个展开的 EAR,然后只复制您更改的几个文件?这就是我进行所有开发的方式。如果您更改了一个简单的 JSP 或 Java 类,您只需复制这些单独的文件,服务器就会获取它们。

于 2010-02-16T16:37:41.313 回答
0

可能有一些特定于服务器的方法来为 Java EE 应用程序提供共享库,但我认为 Java EE 规范不包含任何此类工具。一种方法是将它添加到服务器类路径中,但您通常应该避免这种情况并将您的应用程序捆绑为一个独立单元......即 EAR。看来你已经在做。

这似乎是一个奇怪的要求,因为您已经以正确的方式进行操作,所以不要更改它。

于 2010-02-02T18:26:51.777 回答
0

如果您将简单项目添加为库,您是否考虑过使用 OSGI 在运行时动态交换包。您无需重新部署所有应用程序,只需更改 jar 即可。jBoss 有一个名为jbossosgi的 OSGI 实现,目前处于测试阶段。

于 2010-02-12T17:53:11.330 回答
0

尝试将 POJO 和 J2EE 元素分离到 2 个单独的 EAR 或 WAR 和 EAR 中并分别部署它们。我对 Weblogic 项目有同样的问题,如果我更改了恶意内容,我总是部署 EJB 和所有员工。不久前我想到了这个想法。没有时间尝试,那些项目完成了。但是你可以使用我的想法。

于 2010-03-14T19:42:11.930 回答
0

有一个名为 JRebel 的商业工具:http ://www.zeroturnaround.com/jrebel虽然我不确定它是否适用于您的特定情况。出于测试目的,有 30 天的试用期。

于 2010-04-26T14:37:23.337 回答
0

当我使用 MyEclipse 时,我找到了一种方法,方法是在 EAP 中添加对 java 模块的引用。部署项目时,Java 模块将部署在 AS 中。

唯一不好的是,现在我需要手动管理 application.xml。

这一切都在此链接中进行了解释。

于 2010-04-27T19:22:25.003 回答