如何将war文件(将persistance.xml和entity.java类打包在其中)转换为ear文件?

时间:2014-11-25 05:34:21

标签: java

我正在尝试将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。确保注释有效。错误为空。

我是第一次写我的问题,请原谅我编写代码的方式。

1 个答案:

答案 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文件中。