URL: https://linuxfr.org/forums/programmation-java/posts/jndi-et-probl%C3%A8me-de-nommage Title: JNDI et problème de nommage Authors: cho7 Date: 2009年09月04日T16:48:44+02:00 Tags: Score: 0 Bonjour, je m'arrache les cheveux avec JNDI depuis ce matin, et j'ai enfin trouvé mon problème. Sauf que du coup je ne suis plus sûr de comprendre comment marche le bidule... Je m'explique. J'ai une application que je fais tourner en phase de dev sur un serveur Tomcat. Je dispose d'une ressource jndi déclarée dans le fichier context.xml auquel j'accède directement via l'interface d'eclipse : Code : ** Resource name="jdbc/plouf" type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@xx:1557:PLOUF" username="xx" password="xx" maxActive="20" maxIdle="10" maxWait="-1"/ ** Dans mon code j'y accède simplement via les lignes suivantes : Code : ** initContext = new InitialContext(); envContext = (Context)initContext.lookup("java:comp/env"); ds = (DataSource)envContext.lookup("jdbc/plouf"); conn = ds.getConnection(); ** Et ça marche. J'ai donc ensuite essayé de faire tourner le war sur glassfish. J'ai donc commencé par créer ma ressource jndi sur le serveur (pool + ressource), et j'ai déployé le war quand soudain paf, **NameNotFoundException, No object bound to name java:comp/env/jdbc/plouf** Pour que ça marche j'ai dû modifier mon code source : Code : ** initContext = new InitialContext(); ds = (DataSource)initContext.lookup("jdbc/plouf"); conn = ds.getConnection();** Et ma question finale : pourquoi ai-je dû retirer mon préfixe java:comp/env, sachant que, du coup, mon war ne trouve plus la ressource sur Tomcat(NameNotFoundException: Le Nom jdbc n'est pas lié à ce Contexte) Bref, j'aimerai bien pouvoir packager mon bidule pour qu'il marche bien partout... Si quelqu'un voulait éclairer mes petites lanternes, je lui serai très reconnaissant Merci !