Bonjour,
Contexte :
Je travaille sur une étude de migration weblogic 8.1 en weblogic 10.3 et j'ai besoin de votre aide !
L'ensemble des applications à migrer utilise une API interne pour récupérer des informations LDAP. Cette API repose sur la déclaration de DirObjectFactory dans le fichier ldap.properties.
java.naming.factory.object=com.test.factories.UtilisateurObjectFactory
Après avoir migré l'ensemble des EJB et des MDB, il s'avère que la factory est appelée en context WEB et EJB mais pas en context MDB.
J'ai donc créé une application EAR (un JAR pour les EJB et MDB, un WAR pour l'appel WEB. Le fichier jndi.properties se trouve à la racine du JAR) qui teste les 3 appels :
1 2 3 4 5
| int mCount = 0;
Test mTest = new Test();
mTest.testUser(++mCount);
TestCallEjb.testUser(++mCount);
TestCallJms.testUser(++mCount); |
Le résultat est le même : la factory n'est pas appelé en context MDB. J'ai donc rajouté la ligne de DEBUG pour afficher l'environnement de l'InitialContext :
log.debug("Environment: "+new InitialContext().getEnvironment());
Il s'avère que le log est différent pour les contexts WEB et EJB par rapport au context MDB
Web:
Environment: {java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory, java.naming.factory.url.pkgs=weblogic.jndi.factories:weblogic.corba.j2ee.naming.url:weblogic.jndi.factories:weblogic.corba.j2ee.naming.url, java.naming.factory.object=com.test.factories.UtilisateurObjectFactory}
EJB:
Environment: {java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory, java.naming.factory.url.pkgs=weblogic.jndi.factories:weblogic.corba.j2ee.naming.url:weblogic.jndi.factories:weblogic.corba.j2ee.naming.url, java.naming.factory.object=com.test.factories.UtilisateurObjectFactory:com.test.factories.UtilisateurObjectFactory}
MDB:
Environment: {java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory, java.naming.factory.url.pkgs=weblogic.jndi.factories:weblogic.corba.j2ee.naming.url:weblogic.jndi.factories:weblogic.corba.j2ee.naming.url}
Question :
Pourquoi le fichier jndi.properties n'est pas chargé dans un contexte MDB sous weblogic 10 et comment forcer ce chargement ?
Merci de votre aide !
Partager