我正在尝试将war文件打包到ear文件,因为我必须在webLogic上部署我的项目。我创建了一个动态Web项目,它包含1个实体(java类)类和1个persistance.xml(以及许多其他lib文件,jsp文件,java类)。我已将此项目解压缩为war文件。现在要在weblogic上部署它我需要有一个ear文件。我不知道该怎么做...当我简单地将我的war文件作为web模块添加到耳中时,我得到了一个空指针异常。我相信我需要对persistance.xml和实体文件做些什么。请帮忙。
当我在我的本地tomcat上运行动态Web项目时,它运行正常并且persistance.xml被放置在src / metainf文件夹中,看起来像这样:
persistence-unit name="MyWar"
class PackageName.MyEntity class
properties
property name="eclipselink.jdbc.driver" value="oracle.jdbc.driver.OracleDriver"/>
property name="eclipselink.jdbc.url" value="jdbc:oracle:thin:XYZ"/>
property name="eclipselink.jdbc.user" value="USERNAME"/>
property name="eclipselink.jdbc.password" value="PASSWORD"/>
property name="eclipselink.logging.level" value="SEVERE"/>
property name="eclipselink.ddl-generation" value="create-tables"/>
properties
persistence-unit
persistence `
为了在web逻辑上放置项目我正在使用JTA.My persistance.xml在src / metaInf中,看起来像这样。
persistence-unit name="MyWar" transaction-type="JTA"
jta-data-source XYZ.datasource /jta-data-source
class packageName.MyEntity class
<exclude-unlisted-classes>false exclude-unlisted-classes>
persistence-unit
persistence
我将动态Web项目解压缩为WAR并将其添加到EA项目
中我的application.xml(在EA项目中)放在EARContent / MetaInf / application.xml中,如下所示:
display-name EARName display-name
module
web
web-uri MyWar.war web-uri
context-root MyWar context-root
web
module
application
提取EAR并放入webLogic服务器。 错误:
2014年11月24日下午12:04:19 GMT错误HTTP BEA-101371处理应用程序/ opt / dap / domains / PORTALINSTANCE / int / domain / servers / MS1 / tmp / _WL_user / MYWARNAME的注释时出现故障/48n279/MYWARNAME.war。确保注释有效。错误为空。
我是第一次写我的问题,请原谅我编写代码的方式。
答案 0 :(得分:0)
您可以将.war文件部署到EE容器中。重新打包作为.ear文件的唯一好处是你可以捆绑多个.war文件以及服务端点ejb-jar文件(远程ejbs)。
persistence.xml将驻留在您的ORM / DAO层所在的位置(在war文件的META-INF目录中或在ejb jar文件中,如果从war文件中分离出ejb层[假设你去.ear] )如果你使用war包装,实体将在WEB-INF / classes目录中;如果你将它拆分出来并部署为.ear文件,那么实体将在你的ejb jar文件中。