Я использую встраиваемый EJB-контейнер WebSphere 8 для написания некоторых модульных тестов для моих EJB-компонентов с JUnit4. У меня есть простой проект Java в MyEclipse, где я ссылаюсь на проект EJB. Проект EJB использует Hibernate 3.5 для постоянного хранения, а JNDI источника данных в hibernate.cfg.xml - это jdbc / connectionname. Когда он работает в стандартном WebSphere 8, я настроил источник данных через веб-консоль, и все работает нормально. В встраиваемом контейнере источник данных настраивается в embeddable.properties с:
снова введите имя как jdbc / connectionname среди другой информации источника данных (имя пользователя, пароль и т. Д.) И
Bean. # TestProjectName # ClassNameForTests.ResourceRef.BindingName.jdbc / ConnectionName = JDBC / ConnectionName
Мои встраиваемые свойства следующие:
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, но в момент вызова метода я получаю сообщение об ошибке:
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)
Любой совет будет оценен.