Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

3 réponses
Avatar
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-app_2_4.xsd">

<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  (id=63)
        abandonedConfig= null
        accessToUnderlyingConnectionAllowed= false
        connectionPool= null
        connectionProperties= Properties  (id=66)
        dataSource= null
        defaultAutoCommit= true
        defaultCatalog= null
        defaultReadOnly= null
        defaultTransactionIsolation= -1
        driverClassName= null
        initialSize= 0
        logWriter= PrintWriter  (id=72)
        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  (id=123)
        cause (SQLNestedException)= SQLException  (id=130)
        cause (Throwable)= SQLNestedException  (id=123)
        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...
--

3 réponses

Avatar
Lionel
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"/>

Avatar
Patrick Gelin
"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!
--


Avatar
Franck
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 :

<?xml version='1.0' encoding='utf-8'?>
<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