J'ai déployé une application héritée sur Weblogic 11g. L'application a le code suivant:
javax.naming.NameNotFoundException: While trying to look up /myDataSource in /app/webapp/axis2.war/60105275.; remaining name '/myDataSource' at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139) at weblogic.jndi.internal.ApplicationNamingNode.lookup(ApplicationNamingNode.java:144)
4 Réponses :
Pour éviter de modifier votre code hérité, je pense que si vous enregistrez la source de données avec le nom Java code> est l'espace de noms de la racine JNDI pour les ressources. Ce que l'extrait d'origine des moyens de code est que le conteneur de l'application a été initialement déployé dans n'appliquait aucun espaces de noms supplémentaires au contexte JNDI que vous avez récupéré (comme exemple, Tomcat ajoute automatiquement toutes les ressources à l'espace de noms
comp / env code>, vous devriez donc faire
datasource = (javax.sql.datasource) context.lookup ("Java: comp / env / jdbc / mydataSource"); code> si le nom de référence de la ressource est
JDBC / myDataSource code>). p>
myDataSource code> (supprimer le
jdbc / code>) Vous devriez être bien. Laissez-moi savoir si cela fonctionne. P>
Merci d'avoir répondu. J'ai essayé de faire ça, mais je reçois toujours la même erreur. Je ne sais pas s'il y a un problème de configuration avec le serveur Weblogic lui-même.
Pouvez-vous montrer votre définition de ressources WebLogic (Minus mots de passe / nom d'hôte et tels)? En outre, je suppose que vous ne pouvez pas (ou préféreriez-vous non) recompiler le code?
Parlez-vous du weblogic.xml? Je n'en ai pas. Je n'ai que l'accès à la console d'administration Web basé sur le Web au serveur. J'ai défini une source de données générique et entré MyDataSource pour un nom JNDI.
Ah, intéressant: vous pourrez peut-être ajouter une ressource Ref pour l'application héritée spécifique qui corrigerait l'erreur, donc je joue avec cette interface. Cependant, vous devrez peut-être encore recompiler votre source si vous ne pouvez pas vraiment le faire fonctionner. Quel serveur J2ee était l'application déployée à l'origine?
merci je vais essayer ça. Il a été initialement déployé sur JBoss avec DataSource XML Files.
Vous n'avez pas besoin du Java: préfixe
Au lieu de cela, vous n'avez pas besoin du préfixe "Java: Comp / env /".
Oui, j'ai eu un problème similaire dans Weblogic et en supprimant le préfixe travaillée. DataSource = (javax.sql.dataSource) contexte (). Recherche ("mydatasource");
Vous devriez pouvoir simplement faire cela: Si vous recherchez une destination distante, vous devez utiliser l'usine de contexte initiale WL comme ceci: P> < Pré> xxx pré>
Merci Jeff, est-ce que l'hypothèse que mon nom de données JNDI est préfixé avec "JDBC /" dans Weblogic?
Non, vous mentionnez dans votre message que le nom JNDI est "JDBC / MyDataSource". Si le nom JNDI est "i.am.jeff.west" alors vous feriez Datasource = (javax.sql.datasource) context.lookup ("i.am.jeff.est"). Cependant, j'aime personnellement organiser des choses avec un préfixe qui rend le nettoyeur de l'arbre JNDI. Au fait, vous n'avez jamais répondu à ma demande de vous demander de migrer de JBoss à Weblogic - Jeffrey.west@oracle.com :)
En fait, je suppose que la réponse à votre question pourrait être «oui». De toute façon, lorsque vous utilisez l'usine de contexte initiale WebLogic, vous spécifiez le nom complet JNDI sans autre préfixe.
J'ai eu un problème similaire à celui-ci. Il a été résolu en supprimant le JAVA: COMP / ENV / CODE> PREFIX et UTILISATION
JDBC / MYDATASOURCE CODE> Dans la recherche de contexte. Tout comme quelqu'un a souligné dans les commentaires. p>
Je viens de mettre à jour l'application Legacy Weblogic 8 pour utiliser une source de données au lieu de la chaîne JDBC codée dur.
DataSource JNDI Nom sur l'onglet Configuration de Weblogic Admin a montré: "weblogic.jdbc.esdatasource", ci-dessous, ci-dessous est de deux manières qui ont fonctionné: c'est tout les gens. Aucun mot de passe et usine de contexte initiale nécessaire de l'intérieur de l'application Weblogic. P> P>