weblogic 12c部署失败

时间:2014-07-04 16:52:39

标签: java java-ee deployment weblogic descriptor

我从Weblogic 11g迁移到12c,在部署过程中它失败并显示以下错误:

Caused by: weblogic.application.naming.ReferenceResolutionException: [J2EE:160199]Error resolving ejb-ref "ejb/BizRuleFacade" from module "BizAgi-ejb.jar" of application "BizAgi-ear-Weblogic". The ejb-ref does not have an ejb-link and the JNDI name of the target bean has not been specified. Attempts to automatically link the ejb-ref to its target bean failed because multiple EJBs in the application were found to implement the "BizAgi.bpm.rules.entities.BizRuleFacade" interface, including BizAgi-war.war/BizRuleFacadeBean, BizAgi-ejb.jar/BizRuleFacadeBean. Specify a qualified ejb-link for this ejb-ref to indicate which EJB is the target of this ejb-ref.

我的web.xml文件如下所示:

<ejb-local-ref> <ejb-ref-name>ejb/BAScopeLogFacade</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <local>BizAgi.PAL.historylog.entities.BAScopeLogFacade</local> <ejb-link>BizAgi-ejb.jar#BAScopeLogFacadeBean</ejb-link> </ejb-local-ref>

BizAgi-ejb.jar是耳内的一个模块(BizAgi-ear-Weblogic.ear)。

如何正确部署我的应用程序?

4 个答案:

答案 0 :(得分:2)

非常感谢大家,我终于找到了解决方案,只需从.war文件中删除/删除META-INF / MANIFEST.MF文件即可。这样,EJB就不会被双重引用。

答案 1 :(得分:0)

确保在部署中不会多次加载相同的EJB。您可以通过使用weblogic控制台(AdminServer)并检查部署的EJB来进行检查(单击在部署概述中未通过的部署旁边的小“ +”号)。

在我的情况下,我必须修复maven依赖关系(将一个项目的一个依赖关系设置为“提供”),以使其不会两次加载相同的EJB。

答案 2 :(得分:0)

1。在Ear Pom.xml中添加以下依赖项

  <dependency>
      <groupId>com.example</groupId>
      <artifactId>ejbModel</artifactId>
      <version>1.0-SNAPSHOT</version>
      <type>ejb</type>
  </dependency> 

2。在Ear pom.xml的模块中添加ejb模块

  <modules>
      <ejbModule>
        <groupId>com.example</groupId>
        <artifactId>ejbModel</artifactId>
        <bundleFileName>ejbModel-1.0-SNAPSHOT.jar</bundleFileName>
      </ejbModule>
      .......
   </modules>

3。将ejbmodel依赖项的范围更改为应用程序pom.xml中提供的

   <dependency>
     <groupId>com.example</groupId>
     <artifactId>ejbModel</artifactId>
     <version>1.0-SNAPSHOT</version>
     <type>jar</type>
     <scope>provided</scope>
   </dependency>

4。将ejbmodel应用程序的persistence.xml添加到资源文件夹

答案 3 :(得分:0)

错误: weblogic.management.DeploymentException:weblogic.application.naming.ReferenceResolutionException:[J2EE:160199]从模块解决ejb-ref“ com.xxx.xxx.xxx.xxx.xxx.xxx.XXXX / xxxRemote”时出错 应用程序“ XXX-X.X.X”的“ XXX-X.X.X.war”。 ejb-ref没有ejb-link,并且尚未指定目标Bean的JNDI名称。

解决方案:

1解决方案:pom.xml(Web项目)

<dependencies>
        <dependency>
            <groupId>co.xx.cxxxx</groupId>
            <artifactId>xxxxx-ejb</artifactId>
            <version>1.0</version>
            <type>ejb</type>
            <scope>provided</scope>
        </dependency>
<dependencies>

2解决方案:删除xxxxx-ejb.jar

xxxx.ear> xxxx.war> WEB-INF> lib> xxx-ejb.jar [删除]

3结论:

这是因为存在对ejb.jar的双重引用,因此控制此问题的最佳方法是在pom(web)中说EJB类型为EJB,以便从中获取(ejb.jar)父级(EAR,其中添加了ejb模块)。

希望能对您有所帮助