2012-02-15 9 views
0

私の.earをデプロイする際に、 "java.lang.NoClassDefFoundError:br/com/company/comum/entity/api/MyEntity"この "MyEntity"は "ejb-commo"モジュール上にあり、JPAエンティティが実装するインタフェースです。モジュール "ejb-testapp"には、 "MyEntity"を実装するいくつかのJPAエンティティがあります。EJBクラスローダーでNoClassDefFoundError

<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> 

私はポムスの依存関係をチェックしても大丈夫です。

提案がありますか?

答えて

0

あなたがEclipse(m2e-wtp)について話しているなら、プロジェクトを右クリックし、エクスポート - > EARを実行して、何が出てくるのかを見てください。私はこれを行い、瓶がEARのルートに出力されていることに気づいた(m2e-wtpは<defaultJavaBundleDir>を事実上無視していた)。

私が代わりに<defaultLibBundleDir>を使用するように変更(Mavenはこれに設定の名前を変更しましたが、後方互換性のために有効なdefaultJavaBundleDirを保持)し、期待どおりに働きました。

関連する問題