2016-10-03 1 views
0

jbossモジュールを作成してベースコードを提供しました。このモジュールがjbossにデプロイされたときにいくつかのデータをログアウトしたい。JBossモジュールがjarに依存することができます

@Singleton 
@Startup 
public MyClass { 

    @PostConstruct 
    public void init() { 
     System.out.println("I am in here"); 
    } 

} 

上記のイニシャルメソッドが機能し、正しく開始されます。上のモジュールはjarファイルであることに注意してください。

しかし、上記のコードを独自のプロジェクトに抽出し、コンパイル済みのjarを同じモジュールに依存関係として追加すると、コードは決して実行されません。逆に、もし私が戦争に展開可能に追加すれば、期待どおりに動作します。すなわちMavenの依存関係

<dependency> 
    <groupId>com.myModuleCommon</groupId> 
    <artifactId>moduleCommon</artifactId> 
    <version>1.0.0</version> 
</dependency> 

私はドキュメントhereを見て、それは私が瓶モジュールを持つことができない別のjarファイルに依存した理由である場合、私はわからないよカントーこのstackoverflowのquestionを検討しました。

私の質問は、起動時にモジュールの依存関係として使用されたときに、抽出されたコードが呼び出されないのですが、内部クラスとしても、また、

私のサンプルのwarファイルでは、WEB-INF/libの下で抽出された依存関係を見ることができます。しかし、私のjarモジュールでは、この依存関係が使用されていることを示すManifestファイルには何もありません。モジュールの依存関係を指定する別の方法があるかもしれない、これは問題の一部です。

+0

という意味では、何を "外部のjarファイルとして使用される" ん? EJBは、EJBをサポートする環境にデプロイされた場合にのみ動作します。戦争の一部として、またはJEEコンテナ上の耳のどちらかになります。編集:ああ待って、それはちょうどクリックした。別の瓶に入れて戦争に入れると、うまくいかないでしょう。しかし、WEB-INF/classesのクラスとしてデプロイすると、 – Gimby

+0

@ Gimbyの権限で動作するので、別のプロジェクトにaboceコードを抽出してモジュールの依存関係として追加すると、実行されません。しかし、私がモジュールコードのクラスとしてそれを保持するならば、それは動作します。 – angryip

+1

別のjarファイルでパッケージ化すると、jarファイルは実際にWEB-INF/libに存在します。 (実際に物理的に存在していないものは、動作しないものに対しては最も単純な答えです)。 – Gimby

答えて

0

質問のドキュメントに基づいて、モジュール依存関係をMANIFESTまたはjboss-deplyment-structure.xmlファイルに明示的に追加する必要があると確信しています。 Mavenを使ってHere is an article that shows how this can be done

すなわち:

<configuration> 
    <archive> 
     <manifestEntries> 
     <Dependencies>com.something.dependency</Dependencies> 
     </manifestEntries> 
    </archive> 
</configuration> 

JBossのXMLファイルを使用してすなわち

<jboss-deployment-structure> 
    <deployment> 
     <dependencies> 
     <module name="com.something.dependency" /> 
     </dependencies> 
    </deployment> 
</jboss-deployment-structure> 
関連する問題