私は、WebSphere 8の埋め込み可能なEJBコンテナを使用して、JUnit4でEJBの単体テストを記述しています。 MyEclipseには、EJBプロジェクトを参照する簡単なJavaプロジェクトがあります。 EJBプロジェクトは永続性のためにHibernate 3.5を使用し、hibernate.cfg.xmlのデータソースJNDIはjdbc/connectionnameです。標準のWebSphere 8で実行すると、Webコンソールを介してデータソースをセットアップし、すべて正常に動作します。組み込み可能なコンテナにデータソースを持つembeddable.propertiesで設定されています。再度、他のデータソース情報(ユーザー名、パスワードなど)と ビーンの間ではjdbc/connectionNameのよう埋め込み可能なWebSphere EJBコンテナでデータソースJNDIを設定する
名#TestProjectName#ClassNameForTests.ResourceRef.BindingName.jdbc/connectionNameの=はjdbc/connectionNameの
マイembeddable.properties次のとおりです。
DataSource.ds1.name=jdbc/connectionname
DataSource.ds1.className=com.ibm.db2.jcc.DB2Driver
DataSource.ds1.createDatabase=create
DataSource.ds1.databaseName=DBNAME
DataSource.ds1.user=dbusername
DataSource.ds1.password=dbpassword
DataSource.ds1.transactional=true
DataSource.ds1.createDatabase=create
組み込み可能なコンテナが正常に起動し、EJBがJNDI経由なく、メソッド呼び出しがIなされた時点で成功していますエラー:
ERROR org.hibernate.connection.DatasourceConnectionProvider.configure:78 - Could not find datasource: jdbc/connectionname
javax.naming.NameNotFoundException: Name jdbc not found in context "serverlocal:CELLROOT/SERVERROOT".
at com.ibm.ws.naming.ipbase.NameSpace.getParentCtxInternal(NameSpace.java:1969)
at com.ibm.ws.naming.ipbase.NameSpace.retrieveBinding(NameSpace.java:1376)
at com.ibm.ws.naming.ipbase.NameSpace.lookupInternal(NameSpace.java:1219)
at com.ibm.ws.naming.ipbase.NameSpace.lookup(NameSpace.java:1141)
at com.ibm.ws.naming.urlbase.UrlContextImpl.lookupExt(UrlContextImpl.java:1436)
at com.ibm.ws.naming.urlbase.UrlContextImpl.lookup(UrlContextImpl.java:1314)
at javax.naming.InitialContext.lookup(InitialContext.java:436)
at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75)
アドバイスをいただければ幸いです。
ご返信ありがとうございます。私はすでにこれを持っています。詳細については上記の更新された質問をご確認ください。 – Alex
これらのプロパティは動作するはずです。 JVMの起動時に現在の作業ディレクトリにembeddable.propertiesがありますか?これらのプロパティをEJBContainer.createEJBContainer(Map)メソッドに明示的に渡すとどうなりますか? –
ありがとう@bkail。プロパティをマップとして追加するとうまくいきます。しかし、今私は修正することができない[このエラー](http://stackoverflow.com/questions/9772266/websphere-embeddable-ejb-container-throws-java-lang-classnotfoundexception-com)を取得しています。 – Alex