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

  FORUM HardWare.fr
  Programmation
  Java

   [tomcat 5][datasource][mysql] Problème avec l'exemple de base...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[tomcat 5][datasource][mysql] Problème avec l'exemple de base...

n°830828
poussy
Posté le 24-08-2004 à 14:11:03  profilanswer
 

Bonjour,
 
j'essaie d'utiliser le pool de connexion de tomcat 5, et jusqu'à maintenant c'est pas très brillant!!
 
voici mon fichier serveur.xml
 
<Context path="/essai" docBase="essai" debug="5" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_essai_log." suffix=".txt" timestamp="true"/>
<Resource name="jdbc/essai" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/essai">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
 
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
 
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
 
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
 
<parameter>
<name>username</name>
<value>test</value>
</parameter>
 
<parameter>
<name>password</name>
<value>test</value>
</parameter>
 
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
 
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/javatest</value>
</parameter>
</ResourceParams>
</Context>
 
Maintenant voici mon fichier web.xml
 
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<display-name>essai</display-name>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/essai</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<listener>
<listener-class>listeners.ContextListener</listener-class>
</listener>
<listener>
<listener-class>listeners.SessionListener</listener-class>
</listener>
<servlet>
<servlet-name>test</servlet-name>
<servlet-class>database.test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>test</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
 
et maintenant ma servlet:
 
public class test extends HttpServlet {
 
private DataSource ds;
 
public void init() throws ServletException  
{
try
{
Context init = new InitialContext();
Context ctx = (Context) init.lookup("java:comp/env" );
ds = (DataSource) ctx.lookup("jdbc/essai" );
}
catch(NamingException ne)
{
throw new ServletException("problème lors du chargement du driver ",ne);
}
}
 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException  
{  
PrintWriter out = response.getWriter();
try
{
Connection con = ds.getConnection();
String query = "SELECT * FROM userdata";
PreparedStatement pst = con.prepareStatement(query);
ResultSet r = pst.executeQuery();
while(r.next())
{
int id = r.getInt(0);
String foo = r.getString(1);
String bar = r.getString(2);
out.println(id+"|"+foo+"|"+bar);
}
}
catch(SQLException sqle){out.println(sqle);}
}
}
 
 
Et je reçois le message d'erreur suivant:  
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
 
J'obtiens le même message d'erreur avec l'exemple d'utilisation fourni sur le site de Apache http://jakarta.apache.org/tomcat/t [...] howto.html
 
Quelqu'un peut il m'aider? Merci d'avance

mood
Publicité
Posté le 24-08-2004 à 14:11:03  profilanswer
 

n°830861
Niala
Posté le 24-08-2004 à 14:42:41  profilanswer
 

Ton lien c'est pour Tomcat 4 et je crois que la configuration n'est pas toute à fait la même pour Tomcat 5
 
http://jakarta.apache.org/tomcat/t [...] howto.html


---------------
http://anothergeekwebsite.com
n°830878
poussy
Posté le 24-08-2004 à 15:24:43  profilanswer
 

Effectivement je ne me basais pas sur le bon exemple. J'ai fais les modifications nécessaires pour coller à la version 5 de tomcat et j'obtiens la même erreur.
L'exception est levée à l'instruction Connection con = ds.getConnection()

n°830926
Niala
Posté le 24-08-2004 à 16:20:25  profilanswer
 

ton ds doit être null non?
 
pour ma part j'aurai fais comme ça  

Code :
  1. try{
  2.         Context ctx = new InitialContext();
  3.         if(ctx == null )
  4.             throw new Exception("Boom - No Context" );
  5.         DataSource ds =
  6.               (DataSource)ctx.lookup(
  7.                  "java:comp/env/jdbc/essai" );
  8.     catch (Exception e) {...}


Message édité par Niala le 24-08-2004 à 16:21:31

---------------
http://anothergeekwebsite.com
n°831542
poussy
Posté le 25-08-2004 à 09:13:29  profilanswer
 

En fait mon ds n'est pas nul, car l'exception levé à l'instruction Connection con = ds.getConnection(); serait 'Null pointer Exception'.
 
J'ai tout de même essayé ta solution, mais j'obtiens la même levé d'exception que précedemment...
 
Pour faire avancer un peu les choses, j'utilise le driver "mysql-connector-java-3.0.14-production-bin.jar" que j'ai mis dans le repertoire common/lib de TOMCAT. De plus, je parviens à faire des accès à la base de données sans passer par le Datasource( à l'ancienne ).
 
Je crois que mon problème ne vient pas du code de la servlet mais plutôt des fichiers xml.  
 
Serveur.xml (le nouveau  ;) )

Code :
  1. <Context>
  2.    <Resource name="jdbc/essai" auth="Container" type="javax.sql.DataSource"/>
  3.    <ResourceParams name="jdbc/essai">
  4.     <parameter>
  5.      <name>username</name>
  6.      <value>javauser</value>
  7.     </parameter>
  8.     <parameter>
  9.      <name>password</name>
  10.      <value>javadude</value>
  11.     </parameter>
  12.     <parameter>
  13.      <name>driverClassName</name>
  14.      <value>org.gjt.mm.mysql.Driver</value>
  15.     </parameter>
  16.     <parameter>
  17.      <name>url</name>
  18.      <value>jdbc:mysql://localhost:3306/javatest</value>
  19.     </parameter>
  20.     <parameter>
  21.      <name>maxActive</name>
  22.      <value>8</value>
  23.     </parameter>
  24.     <parameter>
  25.      <name>maxIdle</name>
  26.      <value>4</value>
  27.     </parameter>
  28.    </ResourceParams>
  29.   </Context>


 
et web.xml
 

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app>
  3. <display-name>essai</display-name>
  4. <resource-ref>
  5.  <description>
  6.     Resource reference to a factory for java.sql.Connection
  7.     instances that may be used for talking to a particular
  8.     database that is configured in the server.xml file.
  9.   </description>
  10.  <res-ref-name>
  11.     jdbc/essai
  12.   </res-ref-name>
  13.  <res-type>
  14.     javax.sql.DataSource
  15.   </res-type>
  16.  <res-auth>
  17.     Container
  18.   </res-auth>
  19. </resource-ref>
  20. <listener>
  21.  <listener-class>listeners.ContextListener</listener-class>
  22. </listener>
  23. <listener>
  24.  <listener-class>listeners.SessionListener</listener-class>
  25. </listener>
  26. <servlet>
  27.  <servlet-name>test</servlet-name>
  28.  <servlet-class>database.test</servlet-class>
  29. </servlet>
  30. <servlet-mapping>
  31.  <servlet-name>test</servlet-name>
  32.  <url-pattern>/test</url-pattern>
  33. </servlet-mapping>
  34. </web-app>

n°831853
Niala
Posté le 25-08-2004 à 14:22:15  profilanswer
 


J'ai comparé par rapport à mes fichiers de conf, y'a rien de choquant ; j'ai juste pas le même driver mysql que toi (enfin le nom du fichier jar).
 
T'as regardé dans les logs de Tomcat si t'as qqch?

n°831860
poussy
Posté le 25-08-2004 à 14:35:03  profilanswer
 

Le pire, c'est que j'ai l'impression que ça peut venir d'une erreur bête du style jar manquant ou point virgule oublié...  :sweat:  
En tout cas pour le moment, ça prend le chemin d'un problème insoluble!!


Message édité par poussy le 26-08-2004 à 09:13:24
n°832782
poussy
Posté le 26-08-2004 à 14:05:18  profilanswer
 

Rien du côté du fichier log...

n°834095
poussy
Posté le 27-08-2004 à 14:09:32  profilanswer
 

Personne ne sait...  :sarcastic:

n°834129
frabill
Posté le 27-08-2004 à 14:21:52  profilanswer
 

je ne peux pas t'aider pour ton pbm, mais quel est l'intérêt d'utiliser le pool de connexion plutôt que le driver JDBC :??: (ce que j'ai déjà expérimenté)

mood
Publicité
Posté le 27-08-2004 à 14:21:52  profilanswer
 

n°834228
poussy
Posté le 27-08-2004 à 15:04:10  profilanswer
 

frabill a écrit :

je ne peux pas t'aider pour ton pbm, mais quel est l'intérêt d'utiliser le pool de connexion plutôt que le driver JDBC :??: (ce que j'ai déjà expérimenté)


 
Le gros intérêt est de pouvoir gérer un grand nombre de connexions simultanées et donc une plus grosse charge.
 

n°839406
poussy
Posté le 02-09-2004 à 09:03:54  profilanswer
 

L'idéal serait que quelqu'un ayant reussi à implemeter un exemple simple puisse me dire s'il a déjà rencontré ce problème et comment il l'a résolu (d'où la raison de vivre de ce sujet  :pt1cable: )
 
Sinon connaissez vous un autre pool de connexion me permettant de faire la même chose que ce qu'est sensé faire le Datasource de Tomcat?

n°840880
poussy
Posté le 03-09-2004 à 11:14:16  profilanswer
 

Ca va finir pas se voir, que je poste régulièrement pour rester sur la première page et avoir une solution

n°850508
poussy
Posté le 15-09-2004 à 09:04:23  profilanswer
 

:bounce:

n°1004045
axk47
Java Man vs Boolet Man
Posté le 07-03-2005 à 20:51:09  profilanswer
 

Niala a écrit :

J'ai comparé par rapport à mes fichiers de conf, y'a rien de choquant ; j'ai juste pas le même driver mysql que toi (enfin le nom du fichier jar).
 
T'as regardé dans les logs de Tomcat si t'as qqch?


 
 
moi je tente d'utiliser l'outil PoolMan pour gérer le regroupement de connexions mais tomcat ne trouve pas mon fichier poolman.xml
 
j'ai lu des docs sur Internet qui disent que ce fichier doit se situer dans le repertoire  WEB-INF/classes mais ça ne marche toujours pas.
 
quelqu'un arait une idée
 
 
Eventuellement la configuration via le fichier server.xml m'interesse également car j'ai essayé mais ça ne marche pas non plus!
 
merci d'avance


---------------
"Rendez tout aussi simple que possible mais ne simplifierez rien" Albert Einstein

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

   [tomcat 5][datasource][mysql] Problème avec l'exemple de base...

 

Sujets relatifs
migration paradox vers mysqlProbleme mais pk???
[MySQL] DateProblème image Jpg avec Imagecreatefromstring()
export donnée formulaire(html/asp) vers base access......!! URGENT !!SSL tomcat autehtif client
Donnees mysql dans selectbox en relation avec une input boxprobleme d insertion d un lien dans un mail
[odbc jdbc] lecture base dBase (.dbf) 
Plus de sujets relatifs à : [tomcat 5][datasource][mysql] Problème avec l'exemple de base...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR