Я делаю тесты на ejb3-проекте, используя для тестирования ejb3unit http://ejb3unit.sourceforge.net/Session-Bean.html. Все мои Сервисы нужны для @PersistenceContext (UnitName = bla). Я настроил ejb3unit.properties так:
ejb3unit_jndi.1.isSessionBean=true
ejb3unit_jndi.1.jndiName=ejb/MyServiceBean
ejb3unit_jndi.1.className=com.company.project.MyServiceBean
все работает с базой данных в памяти.
Так что теперь я хочу дополнительно протестировать еще один сервисный бин с @PersistenceContext (UnitName = noTxDatasource ), который идет для , определенного в моем datasources.xml:
<datasources>
<local-tx-datasource>
...
</local-tx-datasource>
<no-tx-datasource>
<jndi-name>noTxDatasource</jndi-name>
<connection-url>...</connection-url>
<driver-class>oracle.jdbc.OracleDriver</driver-class>
<user-name>bla</user-name>
<password>bla</password>
</no-tx-datasource>
</datasources>
Как мне сказать ejb3unit сделать эту работу:
Object object = InitialContext.doLookup("java:/noTxDatasource");
if (object instanceof DataSource) {
return ((DataSource) object).getConnection();
} else {
return null;
}
В настоящее время он не может сказать: javax.NamingException: не удается найти имя (noTxDataSource) в дереве JNDI. Текущие привязки: (ejb / MyServiceBean = com.company.project.MyServiceBean)
Как добавить этот источник данных no-tx-dat в привязки jndi?