Je fais des tests sur un projet ejb3 en utilisant ejb3unit http://ejb3unit.sourceforge.net/Session-Bean.html pour tester. Tous mes services sont longs pour @PersistenceContext (UnitName = bla). J'ai mis en place le ejb3unit.properties comme ceci:EJB3Unit test no-tx-datasource
ejb3unit_jndi.1.isSessionBean=true
ejb3unit_jndi.1.jndiName=ejb/MyServiceBean
ejb3unit_jndi.1.className=com.company.project.MyServiceBean
tout fonctionne avec la base de données en mémoire.
je veux tester en plus donc maintenant une autre servicebean avec @PersistenceContext (NomUnité = noTxDatasource) qui va pour un défini dans mon 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>
Comment puis-je dire de faire ce ejb3unit travail:
Object object = InitialContext.doLookup("java:/noTxDatasource");
if (object instanceof DataSource) {
return ((DataSource) object).getConnection();
} else {
return null;
}
Actuellement, il ne dit: javax.NamingException: Vous ne trouvez pas le nom (noTxDataSource) dans l'arborescence JNDI actuelles: (ejb/MyServic eBean = com.company.project.MyServiceBean)
Comment puis-je ajouter cette source de données no-tx aux liaisons jndi?