3

EAR プロジェクトをデプロイすると、WAR および JAR(EJB) モジュールで同じ EJB が 2 回表示されることに気付きました。どこに問題がありますか?

ここに画像の説明を入力 ここに画像の説明を入力

Maven を使用してプロジェクトをビルドします。を明示的に定義しませんでしejb-jar.xmlた。

pom.xml私が追加したEJBプロジェクトの中にmaven-ejb-plugin

        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-ejb-plugin</artifactId>
        <version>2.3</version>
        <configuration>
            <ejbVersion>3.0</ejbVersion>
            <archive>
                <addMavenDescriptor>false</addMavenDescriptor>
            </archive>
            <generateClient>true</generateClient>
            <clientExcludes>
                <clientExclude>**/core/</clientExclude>
                <clientExclude>**/utils/</clientExclude>
            </clientExcludes>
        </configuration>
    </plugin>

クライアントからは、生成された EJB クライアントを参照します。

        <dependency>
            <groupId>orgstructure</groupId>
            <artifactId>orgstructure-ejb</artifactId>
            <version>1.0.4-SNAPSHOT</version>
            <type>ejb-client</type>
            <scope>compile</scope>
        </dependency>

PS プロジェクトを WebSphere 8 にデプロイします。

アップデート

生成.earされたファイルのレイアウトは標準です:

-project.ear
   --web-module.war
   --ejb-module.jar
   --lib
   --META-INF

そして生成されましたapplcation.xml

 <display-name>orgstructure-ear</display-name>
  <module>
    <web>
      <web-uri>orgstructure-web-1.0.3.war</web-uri>
      <context-root>/orgstructure</context-root>
    </web>
  </module>
  <module>
    <ejb>orgstructure-ejb-1.0.3.jar</ejb>
  </module>
  <library-directory>lib</library-directory>
4

1 に答える 1

0

EJB を使用するスタンドアロンの Java アプリケーション (EJB および Web モジュールを除く) を構築していますか? あなたはどこにも言及していないので、そうではないと思います。

私の推測が正しければ、EJB クライアントを生成しないでください。オプションを削除します

<generateClient>true</generateClient>

POM、およびそれに関連するすべての構成から。

このコンテキストでのEJB クライアントとは、EJB を直接使用するアプリケーション サーバーの外部にデプロイされたアプリケーションを意味します。そのため、サーバー上の Bean へのリモート呼び出しを処理するクライアント jar が必要です。

私の推測が間違っている場合でも、Web アーカイブにクライアント jar への依存関係を含めるべきではありません。Java EE Web アプリケーションは、生成されたクライアント スタブではなく、組み込みのアプリ サーバー メカニズムを使用して EJB に接続します。その場合は、オプションを削除してください

<type>ejb-client</type>

あなたのWARの依存関係から。

于 2013-05-18T23:10:50.367 に答える