2012-02-15 44 views
0

我在部署我的.ear时收到“java.lang.NoClassDefFoundError:br/com/company/comum/entity/api/MyEntity”。这个“MyEntity”在“ejb-commo”n模块上,是JPA实体实现的接口。模块“ejb-testapp”有一些实现“MyEntity”的JPA实体。NoClassDefFoundError与EJB类加载器

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-ear-plugin</artifactId> 
    <configuration> 
     <version>6</version> 
     <generateApplicationXml>true</generateApplicationXml> 
     <defaultJavaBundleDir>lib/</defaultJavaBundleDir> 
     <modules>       
      <ejbModule> 
       <groupId>br.com.company</groupId> 
       <artifactId>ejb-common</artifactId> 
      </ejbModule>           
      <ejbModule> 
       <groupId>br.com.company</groupId> 
       <artifactId>ejb-testapp</artifactId> 
      </ejbModule> 
      <webModule> 
       <groupId>br.com.company</groupId> 
       <artifactId>web-testapp</artifactId> 
       <contextRoot>/desktop</contextRoot> 
      </webModule>  
     </modules> 
     </configuration> 
    </plugin> 

我检查了poms中的依赖关系,它没事。

有什么建议吗?

回答

0

如果您在eclipse(m2e-wtp)中讨论,那么请尝试右键单击该项目并执行export - > EAR并查看出现的内容。我这样做,注意到罐子正在输出到EAR的根部(m2e-wtp实际上忽略了默认的JetBundleDir >)。

我将它改为使用<defaultLibBundleDir>改为(maven已将此设置的名称更改为此设置,但保留defaultJavaBundleDir为向后兼容有效),并且按预期工作。

相关问题