2012-02-15 77 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爲向後兼容有效),並且按預期工作。

相關問題