J'ai créé une source de données JNDI à l'aide de ma console WebLogic, mais je ne suis pas en mesure d'accéder à l'objet de mon application Web. Vous trouverez ci-dessous les détails
dans Weblogic 10.3.6, j'ai donné le nom JNDI pour DataSource comme suit: pour obtenir la connexion DB de mon application Web que j'ai Écrit ce code dans mon application Web: p> plus tôt J'utilisais Tomcat en tant que serveur et j'ai pu obtenir la connexion DB lorsque j'ai configuré les détails des ressources dans le fichier J'ai essayé les options mentionnées dans cette link: Comment chercher des ressources JNDI sur Weblogic? mais je suis toujours Faire face à des problèmes. P> S'il vous plaît laissez-moi savoir où je vais faire une erreur, quel est le processus d'accès à l'objet JNDI. p> p> jdbc / mydb code> p>
TOMCAT / CONF / SERVER.XML CODE>, mais quand j'utilise démarré à l'aide de weblogic Server, je reçois ci-dessous l'erreur: p>
3 Réponses :
Après avoir fait référence à la poste: Tomcat vs weblogic Jndi Recherche J'ai modifié mon code.
Utilisation du code ci-dessous dans mon programme Java d'application Web a résolu mon problème: p> aussi dans la console weblogic J'ai ajouté mon objet JNDI à Mon serveur d'administration (option Sous Serveurs) dans laquelle mon application Web est déployée. P> p>
Donc, vous avez fait exactement ce que je vous ai dit de faire dans mon commentaire et cela a fonctionné ... DERP. Allez mec!
@better_use_mkstemp: pense que vous devriez avoir résumé vos commentaires dans une réponse.
J'ai eu le même problème que la ressource JNDI n'a pas été trouvée, même si je l'ai déjà créée. La clé est d'attribuer la ressource à un serveur spécifique.
J'ai essayé votre réponse dans Weblogic 12c mais non travaillé ..!
Lorsque j'ai essayé uniquement d'utiliser uniquement le nom de DataSource MyDB code> (supprimé le
JDBC / CODE>) Travaillé bien. p>
Le nom JNDI que je me suis créé a de la valeur en tant que "JDBC / MYDB", donc je ne peux donc pas l'enlever.
La même solution pour Weblogic 12c serait
Ajoutez la dépendance ci-dessous à votre pom.xml .. Créez une variable avec la valeur de la maison de middleware actuelle $ {oraclemiddlewareHome}, puis ... p>
Hashtable<String, String> h = new Hashtable<String, String>(7); h.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); h.put(Context.PROVIDER_URL, "t3://localhost:7001");//add ur url h.put(Context.SECURITY_PRINCIPAL, "weblogic");//add username h.put(Context.SECURITY_CREDENTIALS, "welcome1");//add password Bundle bundle; try { InitialContext ctx = new InitialContext(h); DataSource dataSource = ((DataSource) ctx.lookup("jdbc/ContextBindingDS")); bundle = (Bundle) ctx.lookup(BUNDLE_JNDI_NAME); } catch (NamingException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); }catch (Exception e){ e.printStackTrace(); }
Voulez-vous le nommer "jdbc / mydb" au lieu de "Java / Mydb"?
@better_use_mkstemp Oui, j'ai mis à jour ma question, merci de le pointer.
Avez-vous également essayé la deuxième solution dans le lien de votre question? La première réponse s'applique à Tomcat mais je ne suis pas sûr que cela fonctionne toujours dans Weblogic. Supprimer Java: Comp / env / et Essayez initContext.Lookup ("jdbc / mydb")?
Oui, même cela ne fonctionne pas, je reçois en dessous de l'erreur dans ce cas: impossible d'établir la connexion à dB à JNDI: JDBC / MYDB en essayant de rechercher «JDBC.MYDB» n'a pas trouvé de sous -ext 'JDBC'. Résolu '' Causé par: Javax.Naming.NamenotFoundException: En essayant de rechercher 'JDBC.MYDB' n'a pas trouvé de sous-texte 'JDBC'. Résolu ''; Nom restant 'JDBC / MYDB'
La réponse fonctionne sur Weblogic 12.1.3 aussi