13

Mavenで構築されたJavaJEE6プロジェクトが必要であり、標準である必要があります

だから、私はこれを私のpom.xmlに入れました:

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
</dependency>

このようなプロジェクトは、互換性のあるすべてのJEE6コンテナー(jboss、geronimo、glashfishな​​ど)で実行されることになっています。

では、なぜこのjboss依存関係が存在するのでしょうか。

<dependency>
    <groupId>org.jboss.spec</groupId>
    <artifactId>jboss-javaee-6.0</artifactId>
    <version>3.0.2.Final</version>
    <scope>provided</scope>
 </dependency>

これを使用する場合、このサーバーをこのアプリケーションでのみ使用できるようにjbossに関連付けられていますか?

常に標準のjavaee-apiを使用することは望ましくありませんか?

ありがとうございました!

4

2 に答える 2

21

標準のAPIは機能していません。つまり、メソッド本体がありません。これは、テスト時に判明します。私はかつてこの落とし穴に遭遇したことがあり、あまり満足していませんでした。

したがって、別のパッケージを参照として使用することをお勧めします。

AdamBiensブログを詳しく見ることができます

本当に必要な場合は、さまざまな展開環境のプロファイルを作成することもできます。しかし、本質的に私は同意します、これは悲しいことにあまり快適な状況ではありません。

テストで問題が発生した場合は、このスレッドをご覧ください。

編集:
ちなみに、今からこれは興味深いかもしれません。この問題は、javaee-(web-)api for Java EE 7ソース)ではなくなりました。

于 2013-03-20T08:16:50.757 に答える
2

java-apiに依存する最初の解決策は正しい方法です。理想的な場合のアプリケーションは、動作するサーバー環境を気にする必要はありません。単体テストには、 Arquillianを使用できます。これは、頭痛の種なしに「自宅」でエンタープライズBeanをテストするのに役立ちます。jboss-javaeeを使用している場合、アプリケーションがjboss以外のサーバーにデプロイされ、正常に動作することを確認しますか?

于 2015-02-25T04:36:14.887 に答える