2011-07-13 6 views
2

私が作成したいくつかのセッションBeanの単体テストを作成しました。間違ったドメインを指すNetBeansのセッションBeanをユニットテストするための埋め込みGlassFishコンテナ

No EJBContainer provider available. The following providers: org.glassfish.ejb.embedded.EJBContainerProviderImpl returned null from createEJBContainer call.

は、私は非常にこの問題の根本的な原因であると思われる:

SEVERE: EJB6004:Specified application server installation location [C:\Development\GlassFish\3.1\glassfish\domains\domain1] does not exist.

それはそうです、私はそれを実行しようとすると、しかし、NetBeansは私に次のエラーが発生します。 Domain1は存在しません。私は自分自身で "開発"ドメインを作成し、domain1を削除しましたが、それを修正する場所がないという指摘が残っているようです。埋め込みコンテナが参照している非埋め込みコンテナはNetBeansにも登録されており、開発ドメインに正しく接続されています。プロジェクトの定期的な配備に問題はありません。

ご協力いただきありがとうございます。

答えて

1

Adam BienおよびArun Guptaについては、単体テスト用にGlassFishを埋め込む方法について説明します。

主な作品はこれです:

 GlassFish glassfish = new GlassFish(port); 
     ScatteredWar war = new ScatteredWar(NAME, 
      new File("src/main/resources"), 
      new File("src/main/resources/WEB-INF/web.xml"), 
      Collections.singleton(new File("build/classes").toURI().toURL())); 
     glassfish.deploy(war); 

別のアプローチは、これはあなたが標準に付着していることが保証されますよう、あなたのユニットテストを行うためにOpenEJBを使用することです。 Adam asが持っているのは、それを設定するときにentryです。

2

私はScatteredWarが古くなったと信じています。

If your archive is not pre-built, instead it's components are scattered in multiple directories, then you may be interested in using the scattered archive APIs:

インポートorg.glassfish.embeddable:検索の束の後、私はこのスニペットを与える非常に便利ポストQuick introduction to Embeddability of GlassFish Open Source Edition 3.1を見つけました。 ; import org.glassfish.embeddable.archive。;

Deployer deployer = glassfish.getDeployer(); 
// Create a scattered web application. 
ScatteredArchive archive = new ScatteredArchive("testapp", ScatteredArchive.Type.WAR); 
// target/classes directory contains my complied servlets 
archive.addClassPath(new File("target", "classes")); 
// resources/sun-web.xml is my WEB-INF/sun-web.xml 
archive.addMetadata(new File("resources", "sun-web.xml")); 
// resources/MyLogFactory is my META-INF/services/org.apache.commons.logging.LogFactory 
archive.addMetadata(new File("resources", "MyLogFactory"), "META-INF/services/org.apache.commons.logging.LogFactory"); 
deployer.deploy(archive.toURI()) 

その他のドキュメント:Oracle GlassFish Server 3.1 Embedded Server Guideと更新API

関連する問題