GNT sans publicité, site mobile, fonctionnalitées exclusives...

Problème de configuration de ma datasource MySQL avec TOMCAT 5.5.7...

Le
Patrick Gelin
Bonjour,

Depuis trois jour que je suis dessus je n'arrive pas à configurer ma
DataSource jdbc/rpn_database avec TOMCAT 5.5.7 et MySQL Voici ce que
j'ai fait hier:

1. Mon Driver MySQL

j'ai copié dans common/lib:

file:/opt/jakarta-tomcat-5.5.7/common/lib/mysql-connector-java-3.1.10-bin.jar

2. Voici mon premier essais avec /conf/server.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Server>
  <Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <Listener
className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
  <GlobalNamingResources>
    <Environment
      name="simpleValue"
      type="java.lang.Integer"
      value="30"/>
    <Resource
      auth="Container"
      description="User database that can be updated and saved"
      name="UserDatabase"
      type="org.apache.catalina.UserDatabase"
      pathname="conf/tomcat-users.xml"
      factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/>
    <Resource
      name="jdbc/rpn_database"
      type="javax.sql.DataSource"
      password="#####"
      driverClassName="com.mysql.jdbc.Driver"
      maxIdle="2"
      maxWait="5000"
      validationQuery="select 1"
      username="root"
      url="jdbc:mysql://www.rpn.ch:3306/rpn?autoReconnect=true"
      maxActive="4"
      factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"/>
  </GlobalNamingResources>
  <Service
      name="Catalina">
    <Connector
        port="8080"
        redirectPort="8443">
    </Connector>
    <Connector
        port="8009"
        protocol="AJP/1.3"
        protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"
        redirectPort="8443">
    </Connector>
    <Engine
        defaultHost="localhost"
        name="Catalina">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
      <Host
          appBase="webapps"
          name="localhost">
      </Host>
    </Engine>
  </Service>
</Server>

3. Voici mon second essai avec /conf/server.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Server>
<Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<Listener
className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
<GlobalNamingResources>
<Environment
name="simpleValue"
type="java.lang.Integer"
value="30"/>
<Resource
auth="Container"
description="User database that can be updated and saved"
name="UserDatabase"
type="org.apache.catalina.UserDatabase"
pathname="conf/tomcat-users.xml"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/>
</GlobalNamingResources>
<Service
name="Catalina">
<Connector
port="8080"
redirectPort="8443">
</Connector>
<Connector
port="8009"
protocol="AJP/1.3"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"
redirectPort="8443">
</Connector>
<Engine
defaultHost="localhost"
name="Catalina">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
<Host
appBase="webapps"
name="localhost">

<!--
| Begin MyWebApp context definition.
+-->
<Context path="/webapp_newsevent" docBase="webapp_newsevent"
reloadable="true">

<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_webapp_newsevent." suffix=".txt" timestamp="true"/>

<Resource name="jdbc/rpn_database" auth="Container"
type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/rpn_database">
<parameter>
<name>factory</name>
<value>org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory</value>
</parameter>

<!--
| The JDBC connection URL for connecting to your MySQL DB.
| The autoReconnect=true argument to the URL makes sure that the
| MySQL JDBC Driver will automatically reconnect if mysqld closed
| the connection. mysqld by default closes idle connections after
| 8 hours.
+-->
<parameter>
<name>url</name>
<value>jdbc:mysql://www.rpn.ch:3306/rpn?autoReconnect=true</value>
</parameter>

<!--
| MySQL username and password for DB connections.
+-->
<parameter>
<name>username</name>
<value>root</value>
</parameter>

<parameter>
<name>password</name>
<value>mybd07</value>
</parameter>

<!--
| Class name for MySQL JDBC driver.
+-->
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>

<!--
| Maximum number of DB connections in pool. Make sure you
| configure your mysqld max_connections large enough to handle
| all of your DB connections. Set to 0 for no limit.
+-->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>

<!--
| Maximum number of idle DB connections to retain in pool.
| Set to 0 for no limit.
+-->
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>

<!--
| Maximum time to wait for a DB connection to become available
| in ms, in this example 10 seconds. An exception is thrown if
| this timeout is exceeded.
| Set to -1 to wait indefinitely.
+-->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
</ResourceParams>
</Context>
<!--
| End MyWebApp context definition.
+-->
</Host>
</Engine>
</Service>
</Server>

4. voici mon fichier web.xml:
--
<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web...">

<display-name>j2EE news and events for RPN</display-name>

()

<resource-ref>
<description>RPN DataBase</description>
<res-ref-name>jdbc/rpn_database</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

</web-app>

5. Voici mon code source:

public final class CollectionCtrl extends HttpServlet {

 /**

*/
private static final long serialVersionUID = 1L;

()
        
private static DataSource dataSource=null;
                
public void init() throws ServletException {

   super.init();
                
   try {
     Context initContext = new InitialContext();
     Context envContext = (Context)initContext.lookup("java:comp/env");
     dataSource = (DataSource)envContext.lookup("jdbc/rpn_database");
   }  catch(Exception e){
     log("Exception in ElmtCtrl.doGet()");
   }
}
()

6. Voici le bug montré par le debugger de Eclipse à la ligne "dataSource =
(DataSource)envContext.lookup("jdbc/rpn_database");";

"dataSource"= BasicDataSource  (idc)
        abandonedConfig= null
        accessToUnderlyingConnectionAllowed= false
        connectionPool= null
        connectionProperties= Properties  (idf)
        dataSource= null
        defaultAutoCommit= true
        defaultCatalog= null
        defaultReadOnly= null
        defaultTransactionIsolation= -1
        driverClassName= null
        initialSize= 0
        logWriter= PrintWriter  (idr)
        maxActive= 8
        maxIdle= 8
        maxOpenPreparedStatements= -1
        maxWait= -1
        minEvictableIdleTimeMillis= 1800000
        minIdle= 0
        numTestsPerEvictionRun= 3
        password= null
        poolPreparedStatements= false
        restartNeeded= false
        testOnBorrow= true
        testOnReturn= false
        testWhileIdle= false
        timeBetweenEvictionRunsMillis= -1
        url= null
        username= null
        validationQuery= null

Remarquez que url, username etvalidationquerysont null

7. Après cela, il y a une exception à la ligne "conn =
dataSource.getConnection();"

"e"= SQLNestedException  (id3)
        cause (SQLNestedException)= SQLException  (id0)
        cause (Throwable)= SQLNestedException  (id3)
        detailMessage= "Cannot create JDBC driver of class '' for connect URL
'null'"
        next= null
        SQLState= null
        stackTrace= null
        vendorCode= 0

Toute aide est la bienvenue

Merci.

P.S.: Je poste ici car je n'arrive pos à poster dans le forum
gmane.comp.jakarta.tomcat.user
--
Lire les 3 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Lionel
Le #196991
Patrick Gelin wrote:
Bonjour,

Depuis trois jour que je suis dessus je n'arrive pas à configurer ma
DataSource jdbc/rpn_database avec TOMCAT 5.5.7 et MySQL... Voici ce
que
j'ai fait hier:



Et si tu ajoutes ceci dans context.xml (avec la 1ere tentative de
server.xml)?

<ResourceLink global="jdbc/rpn_database" name="jdbc/rpn_database"
type="javax.sql.DataSource"/>

Patrick Gelin
Le #196926
"Lionel" <SPAMcoollATfreePOINTfr> wrote:

Patrick Gelin wrote:
Bonjour,

Depuis trois jour que je suis dessus je n'arrive pas à configurer ma
DataSource jdbc/rpn_database avec TOMCAT 5.5.7 et MySQL... Voici ce
que
j'ai fait hier:



Et si tu ajoutes ceci dans context.xml (avec la 1ere tentative de
server.xml)?

<ResourceLink global="jdbc/rpn_database" name="jdbc/rpn_database"
type="javax.sql.DataSource"/>



ok, super,ça march... Merci mille fois!
--


Franck
Le #196924
Voici un server.xml qui marche pour Tomcat 5.5.7
Bon c'est pour Oracle mais je pense pas que c'est le driver qui te pose
problème :

<Server port="8005" shutdown="SHUTDOWN" debug="0">
<Listener
className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
<Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<GlobalNamingResources>

<Resource
name="jdbc/gedelo"
type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@thorgal:1521:intradev"
username="gedelo"
password="xxxxxxxx"
maxActive="20"
maxIdle="10"
maxWait="-1"
/>
</GlobalNamingResources>

<Service name="Catalina">

<Connector acceptCount="100" connectionTimeout="20000"
disableUploadTimeout="true" port="8080" redirectPort="8443"
maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
</Connector>
<Connector port="8443"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreType="JKS"
keystoreFile="C:keystore" keystorePass="xxxxxxxx"/>

<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="localhost" autoDeploy="false"
deployOnStartup="false">
<DefaultContext allowLinking="true">

</DefaultContext>

<!--Context debug="3" docBase="/M:/workflow/web/"
path="/workflow" allowLinking="true" swallowOutput="true">
<ResourceLink name="jdbc/gedelo" global="jdbc/gedelo"
type="javax.sql.DataSource"/>
</Context-->

</Host>
</Engine>
</Service>
</Server>

Tchô

--
mailto:
E2 ici : http://www.cnbt-cdpn.org
Publicité
Suivre les réponses
Poster une réponse
Anonyme