1

私の小さなテスト webapp で別の問題に直面しています。基本的にデータ アクセスをラップする EJB モジュール (maven-pom を介して作成) があるため、Stateless-SessionBeans として実装されたいくつかの DAO だけが実行されます。私のドメインモデル (JPA2 アノテーション付きの単純な POJO) は、jar ファイルとしてパッケージ化される別の単純な Java プロジェクトにあります。

エンタープライズ アーカイブを作成すると、maven は webapp と ejb-module のみを application.xml に配置します。これを手動で変更しても、ejb-module は展開時に domain-module からクラスを見つけることができません

ejb は、依存するすべての jar を独自のアーカイブ内に配置する必要があることについて何かを読みましたが、このドメイン モジュールは他のプロジェクトでも使用されているため、信じられません。

ejb が外部 jar からクラスをロードできるように、これをどのようにパッケージ化 (または Maven でセットアップ) しますか?

ありがとう

4

1 に答える 1

1

よく覚えていれば、EJB-JAR に Class-Path エントリを含むマニフェストを生成するだけです。

<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-ejb-plugin</artifactId>
    <configuration>
      <ejbVersion>3.0</ejbVersion>
      <archive>
        <manifest>
          <addClasspath>true</addClasspath>
        </manifest>
      </archive>
    </configuration>
  </plugin>
  ...
</plugins>

そして、外部 jar を EAR に追加します。jarModuleこれを行うには、Maven EAR プラグイン構成のように宣言します。モジュール構成を参照してください。

于 2010-01-12T17:01:29.687 に答える