web-dev-qa-db-fra.com

javax.naming.NameNotFoundException: Impossible de résoudre "MyDB". Résolu '' Weblogic 12.1.3. c

Lors de la migration de Tomcat vers Weblogic 12.1.3, j'ai obtenu cette exception javax.naming.namenotfoundexception while trying to look up, puis j'ai essayé les solutions suivantes: NameNotFoundException: en essayant de rechercher 'jdbc' uniquement lors de la publication à partir d'Eclipse Kepler mais pas d'Indigo et Comment accéder à JNDI source de données définie dans weblogic 10.3.6

J'ai l'erreur dans le titre maintenant

Mon code de recherche

ds = (DataSource) initContext.lookup("MyDB");

dans weblogic Nom JNDI

MyDB

Toute aide s'il vous plaît?

9
Dunken

À la différence de Tomcat, weblogic crée plusieurs serveurs (généralement un serveur d'administration et au moins un autre). La source de données doit être allouée à chaque serveur. Dans un environnement en cluster, vous devez appliquer la source de données aux serveurs en cluster.

  1. Connectez-vous à la console Weblogic et vérifiez le nom JNDI de la source de données (ne confondez pas ceci avec le nom de la source de données, qui sert uniquement à garder la liste de la console belle). Le nom JNDI devrait être quelque chose comme jdbc/MyDB
  2. Vérifiez la source de données Cibles onglet et assurez-vous qu'elle est appliquée au serveur/cluster sur lequel vous allez déployer votre application Web.
  3. Redémarrez Weblogic. Je constate que les sources de données en ont parfois besoin avant de devenir visibles par le code de l'application.
  4. Déployez votre application Web sur le bon serveur/cluster. 

Vous devriez être en mesure de vous connecter à la source de données comme d'habitude. J'utilise toujours un bean Spring JNDI, je ne peux donc pas vous aider avec la syntaxe exacte. Les suggestions de @Maas sont bonnes.

25
kiwiron

Vérifiez le cas JNDI (MyDB! = MyDb). Cela semble banal, mais cela m'est arrivé et j'ai eu du mal à le repérer. Comme c’est le premier sujet de discussion que Google renvoie lors de la recherche de ce problème, je le publie ici au cas où cela aiderait.

En plus de cela, la réponse de @kiwiron couvre tout le reste.

1
A. Schoinas

Redémarrer le serveur après le déploiement aide.

1
ACV

Pour moi, le démarrage du serveur géré à partir d'une ligne de commande Windows au lieu de le démarrer à l'aide de la console WebLogic Admin a résolu le problème javax.naming.NameNotFoundException. Je ne sais pas pourquoi c'était le cas cependant.

0
weiwei