Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1128 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [tomcat5] DataSource

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[tomcat5] DataSource

n°671512
ohan
Posté le 12-03-2004 à 10:54:29  profilanswer
 

Bonjour,
J'ai crée une datasource (avec test comme jndiname )depuis la page d'admin de tomcat.
Je voudrais l'utiliser avec la lib dbutils mais j'ai un message d'erreur :

Citation :

exception
 
javax.servlet.ServletException: javax.naming.NameNotFoundException: Le Nom test n'est pas lié à ce Contexte
 org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
 org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
 org.apache.jsp.index_jsp._jspService(index_jsp.java:206)
 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
 
cause mère
 
javax.servlet.jsp.JspTagException: javax.naming.NameNotFoundException: Le Nom test n'est pas lié à ce Contexte
 org.apache.taglibs.dbtags.connection.ConnectionTag.doEndTag(ConnectionTag.java:167)
 org.apache.jsp.index_jsp._jspService(index_jsp.java:110)
 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
 


 
et voici mon code de connexion dans mon fichier jsp:

Citation :

<sql:connection id="conn1">
  <sql:jndiName>java:/test</sql:jndiName>
</sql:connection>


 
Est ce qu'il faut aussi modifier mon web.xml ? Faut-il encore ajouter des lib pour utiliser ma datasource ?
 
Merci pour votre aide.
 
++

mood
Publicité
Posté le 12-03-2004 à 10:54:29  profilanswer
 

n°671558
machinbidu​le1974
Do you feel lucky, punk ?
Posté le 12-03-2004 à 11:28:09  profilanswer
 

Tu dois modifier ton fichier web.xml pour y déclarer ton objet datasource. (cf How To de Tomcat). Dans ton code de JSP, tu appelles la datasource java:/test alors qu'elle n'est déclarée nulle part.  
 
C'est pas un truc que je masterise mais il faut globalement:
 
1. Déclarer la datasource via JNDI dans le fichier web.xml
2. T'assurer que ton driver JDBC est dans ton classpath
3. Appeler ta datasource dans ta JSP comme tu le fais en t'assurant que le nom JNDI que tu lui as affecté est correct. je suis pas sûr que java:/test soit correct mais je peux me tromper

n°671564
ohan
Posté le 12-03-2004 à 11:31:41  profilanswer
 

Salut,
entre temps, j'ai ajouté ca à mon web.xml
<resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/test</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
 
Mais je en suis pas sur du dernier parametre.
 
Sans utiliser ce pool de connexion (en déclarant ma connexion dans mon fichier jsp), mes requetes fonctionnent bien.
 
Pour la syntaxe,java:/test, c'est ce que j'ai lu mais je ne suis pas sur aussi.
 
Merci pour vos précisions.
 
++

n°671611
machinbidu​le1974
Do you feel lucky, punk ?
Posté le 12-03-2004 à 11:56:05  profilanswer
 

D'après la doc de Tomcat, dans ton fichier server.xml tu dois ajouter un code semblable à celui-là:
 

Code :
  1. <Context ...>
  2.   ...
  3.   <Resource name="jdbc/EmployeeDB" auth="Container"
  4.             type="javax.sql.DataSource"/>
  5.   <ResourceParams name="jdbc/EmployeeDB">
  6.     <parameter>
  7.       <name>username</name>
  8.       <value>dbusername</value>
  9.     </parameter>
  10.     <parameter>
  11.       <name>password</name>
  12.       <value>dbpassword</value>
  13.     </parameter>
  14.     <parameter>
  15.       <name>driverClassName</name>
  16.       <value>org.hsql.jdbcDriver</value>
  17.     </parameter>
  18.     <parameter>
  19.       <name>url</name>
  20.       <value>jdbc:HypersonicSQL:database</value>
  21.     </parameter>
  22.     <parameter>
  23.       <name>maxActive</name>
  24.       <value>8</value>
  25.     </parameter>
  26.     <parameter>
  27.       <name>maxIdle</name>
  28.       <value>4</value>
  29.     </parameter>
  30.   </ResourceParams>
  31.   ...
  32. </Context>


 
Car avec ta balise <resource-ref>, tu déclares que tu vas utiliser une datasource référencée sous le nom jdbc/test mais le paramétrage de cette datasource se fait dans le fichier server.xml

n°671648
ohan
Posté le 12-03-2004 à 12:33:05  profilanswer
 

machinbidule1974 a écrit :

D'après la doc de Tomcat, dans ton fichier server.xml tu dois ajouter un code semblable à celui-là:
 

Code :
  1. <Context ...>
  2.   ...
  3.   <Resource name="jdbc/EmployeeDB" auth="Container"
  4.             type="javax.sql.DataSource"/>
  5.   <ResourceParams name="jdbc/EmployeeDB">
  6.     <parameter>
  7.       <name>username</name>
  8.       <value>dbusername</value>
  9.     </parameter>
  10.     <parameter>
  11.       <name>password</name>
  12.       <value>dbpassword</value>
  13.     </parameter>
  14.     <parameter>
  15.       <name>driverClassName</name>
  16.       <value>org.hsql.jdbcDriver</value>
  17.     </parameter>
  18.     <parameter>
  19.       <name>url</name>
  20.       <value>jdbc:HypersonicSQL:database</value>
  21.     </parameter>
  22.     <parameter>
  23.       <name>maxActive</name>
  24.       <value>8</value>
  25.     </parameter>
  26.     <parameter>
  27.       <name>maxIdle</name>
  28.       <value>4</value>
  29.     </parameter>
  30.   </ResourceParams>
  31.   ...
  32. </Context>


 
Car avec ta balise <resource-ref>, tu déclares que tu vas utiliser une datasource référencée sous le nom jdbc/test mais le paramétrage de cette datasource se fait dans le fichier server.xml


 
En utilisant l'interface d'admin de tomcat, le fichier server.xml se configure automatiquement et voici le miens (enfin, une partie...)

Citation :

<ResourceParams name="conn1">
      <parameter>
        <name>maxWait</name>
        <value>5000</value>
      </parameter>
      <parameter>
        <name>maxActive</name>
        <value>10</value>
      </parameter>
      <parameter>
        <name>password</name>
        <value></value>
      </parameter>
      <parameter>
        <name>url</name>
        <value>jdbc:mysql://localhost/test&quot;</value>
      </parameter>
      <parameter>
        <name>driverClassName</name>
        <value>org.gjt.mm.mysql.Driver</value>
      </parameter>
      <parameter>
        <name>maxIdle</name>
        <value>5</value>
      </parameter>
      <parameter>
        <name>username</name>
        <value>root</value>
      </parameter>
    </ResourceParams>


 
Voilà, j'espère que ces infos pourront vous aider à m'aider.
 
Merci
++

n°671661
ohan
Posté le 12-03-2004 à 12:43:38  profilanswer
 

je vais le modifier pour le mettre comme le tiens...

n°671662
machinbidu​le1974
Do you feel lucky, punk ?
Posté le 12-03-2004 à 12:43:58  profilanswer
 

Essaie avec la combinaison de fichiers suivante:
 

Code :
  1. web.xml
  2. <resource-ref>
  3.      <description>DB Connection</description>
  4.      <res-ref-name>conn1</res-ref-name>
  5.      <res-type>javax.sql.DataSource</res-type>
  6.      <res-auth>Container</res-auth>
  7. </resource-ref>


 

Code :
  1. server.xml
  2. <ResourceParams name="conn1">
  3.      <parameter>
  4.        <name>maxWait</name>
  5.        <value>5000</value>
  6.      </parameter>
  7.      <parameter>
  8.        <name>maxActive</name>
  9.        <value>10</value>
  10.      </parameter>
  11.      <parameter>
  12.        <name>password</name>
  13.        <value></value>
  14.      </parameter>
  15.      <parameter>
  16.        <name>url</name>
  17.        <value>jdbc:mysql://localhost/test&quot;</value>
  18.      </parameter>
  19.      <parameter>
  20.        <name>driverClassName</name>
  21.        <value>org.gjt.mm.mysql.Driver</value>
  22.      </parameter>
  23.      <parameter>
  24.        <name>maxIdle</name>
  25.        <value>5</value>
  26.      </parameter>
  27.      <parameter>
  28.        <name>username</name>
  29.        <value>root</value>
  30.      </parameter>
  31.    </ResourceParams>
  32. Que fait ton &quot; dans la valeur du paramètre url ???


Message édité par machinbidule1974 le 12-03-2004 à 12:44:43
n°671690
ohan
Posté le 12-03-2004 à 13:21:49  profilanswer
 

j'en ai vraiment marre !!! je désespère !!!
 
J'ai exactement mis ce que tu m'as donné avec en plus dans mon fichier jsp :
[quote][<sql:connection id="conn1">
  <sql:jndiName>java:/conn1</sql:jndiName>
</sql:connection>/quote]
 
et comme ca ne marchait pas :
[quote][<sql:connection id="conn1">
  <sql:jndiName>java:/test</sql:jndiName>
</sql:connection>/quote]
 
Je en sais vraiment plus quoi faire :(
 
++

n°671774
machinbidu​le1974
Do you feel lucky, punk ?
Posté le 12-03-2004 à 14:09:19  profilanswer
 

est-ce-que tu peux me poster tes fichiers web.xml et server.xml ainsi que le code de ta JSP ?

n°671790
ohan
Posté le 12-03-2004 à 14:16:31  profilanswer
 

salut et merci,
Voilà le web.xml

Citation :

<?xml version="1.0" encoding="ISO-8859-1"?>
<!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>
  <display-name>Le serveur de test de ohan</display-name>
  <description>
     Bienvenue sur le serveur de test de ohan
  </description>
 
 
<!-- JSPC servlet mappings start -->
<taglib>
  <taglib-uri>http://jakarta.apache.org/taglibs/dbtags</taglib-uri>
  <taglib-location>/WEB-INF/dbtags.tld</taglib-location>
</taglib>
 
<resource-ref>  
       <description>DB Connection</description>  
       <res-ref-name>conn1</res-ref-name>  
       <res-type>javax.sql.DataSource</res-type>  
       <res-auth>Container</res-auth>  
</resource-ref>
 
<!-- JSPC servlet mappings end -->
 
</web-app>


 
Voilà le fichier jsp

Citation :

<%@ taglib uri="http://jakarta.apache.org/taglibs/dbtags" prefix="sql" %>
 
 
 
<%-- open a database query --%>
<table>
<sql:connection id="conn">
  <sql:jndiName>conn1</sql:jndiName>
</sql:connection>
  <sql:statement id="stmt1" conn="conn">  
  <sql:query>
    select id,nom from test
  </sql:query>
  <%-- loop through the rows of your query --%>
  <sql:resultSet id="rset2">
    <tr>
      <td><sql:getColumn position="1"/></td>
      <td><sql:getColumn position="2"/></td>
          <sql:wasNull>[no description]</sql:wasNull></td>
    </tr>
  </sql:resultSet>
</sql:statement>
</table>
 
<%-- close a database connection --%>
<sql:closeConnection conn="conn"/>


 
et voici le server.xml

Citation :


<ResourceParams name="conn1">  
       <parameter>  
         <name>maxWait</name>  
         <value>5000</value>  
       </parameter>  
       <parameter>  
         <name>maxActive</name>  
         <value>10</value>  
       </parameter>  
       <parameter>  
         <name>password</name>  
         <value></value>  
       </parameter>  
       <parameter>  
         <name>url</name>  
         <value>jdbc:mysql://localhost/test</value>  
       </parameter>  
       <parameter>  
         <name>driverClassName</name>  
         <value>org.gjt.mm.mysql.Driver</value>  
       </parameter>  
       <parameter>  
         <name>maxIdle</name>  
         <value>5</value>  
       </parameter>  
       <parameter>  
         <name>username</name>  
         <value>root</value>  
       </parameter>  
     </ResourceParams>  


Il n'est pas en entier  car trop trop grand !
 
Merci encore
++

mood
Publicité
Posté le 12-03-2004 à 14:16:31  profilanswer
 

n°671857
machinbidu​le1974
Do you feel lucky, punk ?
Posté le 12-03-2004 à 14:37:19  profilanswer
 

L'erreur générée avec ces fichiers c'est bien "javax.servlet.ServletException: javax.naming.NameNotFoundException: Le Nom conn1 n'est pas lié à ce Contexte" ?

n°671871
ohan
Posté le 12-03-2004 à 14:41:36  profilanswer
 

oui, c'est bien ca!

n°671910
machinbidu​le1974
Do you feel lucky, punk ?
Posté le 12-03-2004 à 14:51:00  profilanswer
 

Est-ce-que ton fichier server.xml contient bien une ligne comme ceci:
 
<Resource name="conn1" auth="Container"
            type="javax.sql.DataSource"/>
 
avant <ResourceParams name="conn1">    
...
 
?

n°671948
ohan
Posté le 12-03-2004 à 15:09:25  profilanswer
 

oui
j'ai essaye de mettre aussi name="jdbc/conn1"

n°671967
machinbidu​le1974
Do you feel lucky, punk ?
Posté le 12-03-2004 à 15:21:31  profilanswer
 

Ben je vois pas :/ Tout semble correct. Suggestion stupide mais si tu remplaces "conn1" par un truc du type "jdbc/conn1" (partout) ? T'as aucune erreur dans la log de ton serveur Tomcat au lancement ?


Message édité par machinbidule1974 le 12-03-2004 à 15:24:50
n°673891
iskream
Posté le 15-03-2004 à 11:21:24  profilanswer
 

Dans ton server.xml, as tu réellement une entrée nommée "Context" ?  
Ensuite, assures toi que ton driver JDBC est bien présent dans le répertoire $TOMCAT_HOME/common/lib.
Tomcat est assez capricieux avec les DataSources :-)

n°673952
ohan
Posté le 15-03-2004 à 12:35:13  profilanswer
 

salut,  
dans ma balise context, je n'ai pas d'attribut, en faut-il ?
 
 
Merci
++

n°674264
la viper
Posté le 15-03-2004 à 16:57:27  profilanswer
 

oui regarde du coté de la fac tomcat
 
dans google : jakarta howto datasource
ils te donnent un exemple de la modification de server.xml et web.Xml
perso j'ai laché l'affaire pour l'instant sous tomcat 5 mais sous tomcat 4.1 ca fonctionne :)

n°675029
iskream
Posté le 16-03-2004 à 14:00:21  profilanswer
 

Oui, il faut que ta balise contexte soit remplie.
Elle doit contenir des infos globales relatives à ta web-app, et à l'intérieur, tu y inclues toutes les informations concernant ta datasource.
 
-- Mike


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [tomcat5] DataSource

 

Sujets relatifs
[JMF] DataSource FileTypeDescriptorTomcat/jdbc/datasource
pb activex datasource 
Plus de sujets relatifs à : [tomcat5] DataSource


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)