1

Glassfish環境でArquillian[1]を使用して、コードの単体テストを行っています。

Glassfishが埋め込まれた環境で実行すると、テストが正常に機能するように設定しました。しかし、remote-Glassfish-environmentでテストを実行しようとすると、maven-Dependenciesが見つかりません。

Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: java.lang.NoClassDefFoundError: Lorg/springframework/data/neo4j/support/Neo4jTemplate;

テストからの私のシュリンクラップ:

@Deployment
public static WebArchive createDeployment() {
    return ShrinkWrap.create(WebArchive.class).addPackages(true, "main.java")
            .addAsWebInfResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml"));
}

Mavenの依存関係を解決するには、shrinkwrap-resolver-bom:shrinkwrap-resolver-bomを使用しています。リモート環境でテストを実行すると、Mavenの依存関係がクラスパスにないように見えます。

pom.xmlをhttp://pastxt.com/P/9400A0KQSCにアップロードしました

Glassfish-remote-environmentでテストを実行するにはどうすればよいですか?

[1] http://arquillian.org/

4

1 に答える 1

2

POMにShrinkWrapResolverBOMを含めるだけでは、ArquillianがMavenアーティファクトを見つけてデプロイメントに追加できるようにするのに十分ではありません。Maven BOM(部品表)は、関連する依存関係の単なるコンテナーです

BOMを使用するには、セクションのプロジェクトPOmにBOMをインポートし、dependencyManagement必要な依存関係を追加する必要があります。ShrinkWrap Mavenリゾルバーを追加するには、shrinkwrap-resolver-depchainテストの依存関係を追加する必要があります。

Mavenリゾルバーを使用して必要な依存関係を解決してから、解決したアーティファクトをShrinkWrapアーカイブに追加する必要があります。新しいShrinkWrapMavenリゾルバー(2.x)の使用に関する詳細は、このコミュニティのFAQ投稿にあります。Arquillian BOM(<= 1.0.3.Final)は古いバージョンのShrinkWrapリゾルバーを取り込むため、どのバージョンのShrinkWrapMavenリゾルバーを取り込むかについて注意する必要があることに注意してください。

于 2012-12-14T08:44:27.307 に答える