IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

InitialContext + listener-class (web.xml)


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Points : 46
    Points
    46
    Par défaut InitialContext + listener-class (web.xml)
    Bonjour,

    J'essaie d'accéder à des variables XML contenues dans web.xml, à partir d'une classe qui est dans une balise listener-class.

    ContextListener.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    InitialContext ctx = new InitialContext();
    String db_url = (String)ctx.lookup("java:comp/env/DATABASE_URL")
    javax.naming.NameNotFoundException: Name "comp/env/DATABASE_URL" not found in context "java:"

    web.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
       <web-app id="WebApp">
          <display-name>MyAPP</display-name>
      	  <filter>
                 <filter-class>
                     MyAPP.SessionTracker
                 </filter-class>
      	  </filter>
      	  <filter-mapping>
                  <filter-name>SessionTracker</filter-name>
                  <url-pattern>/*</url-pattern>
    	  </filter-mapping>
    	  <listener>
                  <listener-class>MyAPP.ContextListener</listener-class>
    	  </listener>
              <servlet id="Servlet_1">
                 <servlet-name>Demand1</servlet-name>
                 <display-name>Demand1</display-name>
                 <servlet-class>Servlet.Demand1</servlet-class>
              </servlet>
             ...
              <env-entry id="EnvEntry_2">
                 <env-entry-name>DATABASE_URL</env-entry-name>
                 <env-entry-value>jdbc:blablabla</env-entry-value>
                 <env-entry-type>java.lang.String</env-entry-type>
              </env-entry>
              ...
    Pourtant ce même code fonctionne ailleurs, le fait qu'il soit appelé à partir d'un listener-class crée une exception

    Quelqu'un connait une solution pour accéder aux env-entry de web.xml à partir d'un listener-class?

    Merci,
    g0ldenrno

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    Sous tomcat, ce que tu fais la est pour le fichier context.xml (ou $CATALINA_HOME/conf/server.xml) et non web.xml.

    Crée un repertoire META-INF au meme niveau que WEB-INF.
    Dans ce nouveau repertoire crée le fichier context.xml avec le contenu suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?xml version="1.0" encoding="UTF-8"?>
    <Context path="/PATH" docBase="NOM" debug="5"
    	reloadable="true">
    	<Resource name="jdbc/DBSetup" auth="Container"
    		type="javax.sql.DataSource" username="USERNAME" password="PASSWORD"
    		driverClassName="oracle.jdbc.driver.OracleDriver"
    		url="jdbc:oracle:thin:@localhost:1521:SID" maxActive="100"
    		maxIdle="50" maxWait="-1" removeAbandoned="true" logAbandoned="true" />
    </Context>
    Modifie suivant ta config.
    et remplace ton code par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    InitialContext ic = new InitialContext();
    DataSource datasource = (DataSource) ic.lookup("java:comp/env/jdbc/DBSetup");
    Farid

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tomcat] Web.xml , listener qui bloque et provoque erreur 404
    Par julestruong dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 01/08/2013, 14h17
  2. Probème <listener-class> web.xml
    Par kikiandki dans le forum Portails
    Réponses: 4
    Dernier message: 09/11/2012, 00h39
  3. [Tomcat 6.0] Listener non chargé - fichier web.xml
    Par radium dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 19/09/2011, 18h22
  4. Réponses: 1
    Dernier message: 22/07/2011, 14h26
  5. [Liferay] web.xml + probleme deux context et deux listener
    Par ala1986 dans le forum Portails
    Réponses: 0
    Dernier message: 09/12/2010, 22h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo