我正在开发一个用EJB 2编写的遗留应用程序,我希望在Eclipse中加载它,并在eclipse中调试它。我知道我可以从Eclipse构建它并在本地JBoss5.1安装和远程调试中部署它,但是这个选项的问题是,每次我进行更改时,我都必须重新构建和部署它。
现在,这个应用程序由几个文件夹组成,并使用ANT构建。文件夹结构的高级视图如下所示:
MyAppServer
build
build.xml
descriptors
app1.xml
app2.xml
app3.xml
...
...
app33.xml
src
packagefolder1
com
xxx
xxx
packagefolder2
com
xxx
xxx
packagefolder3
com
xxx
xxx
test每个组件都有一个描述符文件(总共有42个描述符文件)。它们中的每一个包含以下定义
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd">
<ejb-jar>
<description>abcd</description>
<enterprise-beans>
<session>
<display-name>xxx Bean</display-name>
<ejb-name>Xxxx</ejb-name>
<home>PackageFolder1.xxx.xxx</home>
<remote>xxx.xxx.xxx</remote>
<ejb-class>xxx.xxx.xxx</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
<resource-ref>
<res-ref-name>jdbc/myAppDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</session>
</enterprise-beans>
</ejb-jar> 除了描述符文件之外,还有三个文件似乎是通用的。application.xml,application-client.xml和web.xml。这些文件的内容具有以下格式
application.xml
<application>
<display-name>MyAppServer</display-name>
<module>
<ejb>app1.jar</ejb>
</module>
<module>
<ejb>app2.jar</ejb>
</module>
<module>
<ejb>app3.jar</ejb>
</module>
<module>
<ejb>app4.jar</ejb>
</module>
<module>
<ejb>app5.jar</ejb>
</module>
....
....
<module>
<ejb>app42.jar</ejb>
</module>
</application>application-client.xml
<application-client>
<ejb-ref>
<ejb-ref-name>xxx</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>xxx.xxxHome</home>
<remote>xxxx</remote>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>xxx</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>xxx.xxxHome</home>
<remote>xxxx</remote>
</ejb-ref>
....
....
<ejb-ref>
<ejb-ref-name>xxx</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>xxx.xxxHome</home>
<remote>xxxx</remote>
</ejb-ref>
</application-client>现在,当我使用ant构建脚本构建它时,我得到了一个EAR文件,该文件具有以下内容
MyAppServer
config
META-INF
MANIFEST.MF
app1.jar
META-INF
ejb-jar.xml
packageFolder1
MyClass1.class
app2.jar
META-INF
ejb-jar.xml
packageFolder2
MyClass2.class
app3.jar
META-INF
ejb-jar.xml
packageFolder3
MyClass3.class
app4.jar
META-INF
ejb-jar.xml
packageFolder4
MyClass3.class所以看起来像ant build sript接受每个模块,构建一个jar文件,创建一个ejb-jar.xml并将其添加到EAR文件中。每个模块都打包成一个jar文件。我没有在ear文件中看到application.xml和application-client.xml文件,所以我猜这些文件是用来爬行ear文件的吗?
我想将这个应用程序加载到eclipse中,并尝试调试它。在Eclipse中创建vaniallaEJB2.1项目时,我得到的结构如下所示:
EJB2.1Vanilla
ejbModule
META-INF
ejb-jar.xml
MANIFEST.MF加载应用程序的最佳方法是什么,这样我就可以在eclipse中直接运行它了?我认为src文件夹的位置应该无关紧要,这是我如何重新配置描述符文件。
发布于 2014-01-27 20:34:06
在这里,您有几个选择:
<target name="deploy">
<copy todir="${YOUR_JBOSS_DEPLOY_DIRECTORY}" file="${THE_EAR_YOU_JUST_GENERATED}"/>
</target>每次你做完改变就打电话给我。这是比较保守的选择,因为您尊重原始的打包(而且它应该是相当快的JBoss)。它看起来很难看,很难与Eclipse集成,但是它是可靠的,并且将在JBoss自动部署.ear扫描其更改时工作。
https://stackoverflow.com/questions/21390770
复制相似问题