tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Sabroff <mike.sabr...@cygnusb2b.com>
Subject Re: JNDI Datasource Problem
Date Mon, 20 Feb 2006 03:49:56 GMT

your connection string doesn't quite look right the following is what I use.
jdbc:mysql://box.domain.com:3306/dbname?user=whoever&password=whatever

The problem that is usually associated with the error message you get 
invalid: "java.sql.SQLException: No suitable driver"  usually implies 
that there is something wrong with the url of the connection. I had this 
happen a few times. Once for leaving out the second "collin jdbc:mysql //"
It was defined in properties file so it was easy to fix, but 
anyway......there have been other times I got that error  and it was the 
same reason....badly formed url  hence the mismatch on the drivers 
listed in the jar.
I also give it the full hostname in the url. Though localhost should 
resolve, it can greatly depend on DNS and host files, etc. Have been 
thru that too.



Mark Whitby wrote:
> EDIT: I've just realised that my server.xml file may not be correctly 
> set up so I've attached it to this email incase that is the case.  I 
> did change it using the Tomcat Admin and it seems to have messed up my 
> formatting so I can't tell if the context and host tags are correct.
>
> Mark
>
> ----- Original Message ----- From: "Mark Whitby" <ug82msw@cs.bham.ac.uk>
> To: "Tomcat Users List" <users@tomcat.apache.org>
> Sent: Sunday, February 19, 2006 9:34 PM
> Subject: Re: JNDI Datasource Problem
>
>
>> I've checked the documentation and yes I was reading the 5.0 version 
>> not the 5.5 one!  However I've followed the new instructions and 
>> still get the following error:
>>
>> javax.servlet.ServletException: Unable to get connection, DataSource 
>> invalid: "org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot 
>> create JDBC driver of class '' for connect URL 'null'"
>>
>> The server.xml file now reads as follows:
>>
>> <Context path="/DBTest" docBase="DBTest"
>>        debug="5" reloadable="true" crossContext="true">
>>
>>  <Resource name="jdbc/TestDB" auth="Container" 
>> type="javax.sql.DataSource"
>>               maxActive="100" maxIdle="30" maxWait="10000"
>>               username="javauser" password="pilks2" 
>> driverClassName="com.mysql.jdbc.Driver"
>>
>> url="jdbc:mysql://localhost:3306/fyptest?autoReconnect=true"/>
>>
>> </Context>
>>
>> Any ideas what's wrong now?
>>
>> Mark
>>
>> ----- Original Message ----- From: "Len Popp" <len.popp@gmail.com>
>> To: "Tomcat Users List" <users@tomcat.apache.org>
>> Sent: Sunday, February 19, 2006 9:22 PM
>> Subject: Re: JNDI Datasource Problem
>>
>>
>> There is no ResourceParams in 5.5. Check the documentation again, and
>> make sure you're looking at the docs for 5.5 not 5.0.
>>
>> -- 
>> Len
>>
>> On 2/19/06, Mark Whitby <ug82msw@cs.bham.ac.uk> wrote:
>>> Yes I'm using version 5.5.15.  What I have in the server.xml file is 
>>> what is
>>> advised in the Tomcat set up pages.  So would it make any difference
>>> removing one of these or as it's ignored does it not matter?
>>>
>>> Mark
>>>
>>> ----- Original Message -----
>>> From: "Bill Barker" <wbarker@wilshire.com>
>>> To: <users@tomcat.apache.org>
>>> Sent: Sunday, February 19, 2006 8:40 PM
>>> Subject: Re: JNDI Datasource Problem
>>>
>>>
>>> > Since you have <WatchedResources />, this suggests you are using some
>>> > version of 5.5.  In this case, the <ResourceParams /> is ignored 
>>> (you > set
>>> > them as attributes on the <Resource /> tag).
>>> >
>>> > "Mark Whitby" <ug82msw@cs.bham.ac.uk> wrote in message
>>> > news:008201c6358a$5cb91430$0201a8c0@MarksLaptop...
>>> >> I've done that and I now get the following error:
>>> >>
>>> >> org.apache.jasper.JasperException: Unable to get connection, >>

>>> DataSource
>>> >> invalid: "java.sql.SQLException: No suitable driver"
>>> >>
>>> >> This is what I have in my context.xml file:
>>> >>
>>> >> <!-- The contents of this file will be loaded for each web
>>> >> application -->
>>> >> <Context>
>>> >>
>>> >>    <!-- Default set of monitored resources -->
>>> >>    <WatchedResource>WEB-INF/web.xml</WatchedResource>
>>> >>
>>> >>    <!-- Uncomment this to disable session persistence across Tomcat
>>> >> restarts -->
>>> >>    <!--
>>> >>    <Manager pathname="" />
>>> >>    -->
>>> >>
>>> >> <ResourceLink
>>> >>            name="jdbc/TestDB"
>>> >>            global="jdbc/TestDB"
>>> >>            type="javax.sql.DataSource" auth="Container" />
>>> >>
>>> >>
>>> >> </Context>
>>> >>
>>> >>
>>> >> Any further suggestions?
>>> >>
>>> >> Mark
>>> >> ----- Original Message -----
>>> >> From: "Parsons Technical Services" <parsonstechnical@earthlink.net>
>>> >> To: "Tomcat Users List" <users@tomcat.apache.org>
>>> >> Sent: Sunday, February 19, 2006 7:02 PM
>>> >> Subject: Re: JNDI Datasource Problem
>>> >>
>>> >>
>>> >>> Look up resource link. It goes in the context.xml
>>> >>>
>>> >>> Also only put the jar file in the common/lib and no where else.
>>> >>>
>>> >>>
>>> >>> ----- Original Message -----
>>> >>> From: "Mark Whitby" <ug82msw@cs.bham.ac.uk>
>>> >>> To: "Tomcat Users List" <users@tomcat.apache.org>
>>> >>> Sent: Sunday, February 19, 2006 12:53 PM
>>> >>> Subject: JNDI Datasource Problem
>>> >>>
>>> >>>
>>> >>> Hey guys,
>>> >>>
>>> >>> Thanks for the help with the previous problem I had, I've 
>>> managed to
>>> >>> solve them now thanks to your help.  But now I'm having a 
>>> problem >>> with
>>> >>> setting up a DataSource connection.  I've followed the example 
>>> word >>> for
>>> >>> word and got the following error:
>>> >>>
>>> >>> javax.servlet.ServletException: Unable to get connection, 
>>> DataSource
>>> >>> invalid: "org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot

>>> >>> create
>>> >>> JDBC driver of class '' for connect URL 'null'"
>>> >>>
>>> >>> I did a google search for this but only managed to find 
>>> something on >>> the
>>> >>> NetBeans website which wasn't much help.  I've edited the 
>>> server.xml
>>> >>> file as stated, placed the relevent jar file
>>> >>> (mysql-connector-java-3.1.12-bin.jar) in the lib folder in my web
>>> >>> application and in the /common/lib folder in the Tomcat home 
>>> folder >>> and
>>> >>> I've reset the server and I'm still getting the same problem.
>>> >>>
>>> >>> I'm using MySQL, database is called 'fyptest' and the table is 
>>> called
>>> >>> 'testdata'.  So where am I going wrong?
>>> >>>
>>> >>> Many thanks
>>> >>>
>>> >>> Mark Whitby
>>> >>>
>>> >>> Server.xml file:
>>> >>>
>>> >>> <Context path="/DBTest" docBase="DBTest"
>>> >>>        debug="5" reloadable="true" crossContext="true">
>>> >>>
>>> >>>  <Logger className="org.apache.catalina.logger.FileLogger"
>>> >>>             prefix="localhost_DBTest_log." suffix=".txt"
>>> >>>             timestamp="true"/>
>>> >>>
>>> >>>  <Resource name="jdbc/TestDB"
>>> >>>               auth="Container"
>>> >>>               type="javax.sql.DataSource"/>
>>> >>>
>>> >>>  <ResourceParams name="jdbc/TestDB">
>>> >>>    <parameter>
>>> >>>      <name>factory</name>
>>> >>>      <value>org.apache.commons.dbcp.BasicDataSourceFactory</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 -1 for no limit.  See also the DBCP documentation

>>> on >>> this
>>> >>>         and the minEvictableIdleTimeMillis configuration parameter.
>>> >>>         -->
>>> >>>    <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>
>>> >>>
>>> >>>    <!-- MySQL dB username and password for dB connections  -->
>>> >>>    <parameter>
>>> >>>     <name>username</name>
>>> >>>     <value>javauser</value>
>>> >>>    </parameter>
>>> >>>    <parameter>
>>> >>>     <name>password</name>
>>> >>>     <value>pilks2</value>
>>> >>>    </parameter>
>>> >>>
>>> >>>    <!-- Class name for the old mm.mysql JDBC driver - uncomment

>>> this
>>> >>> entry and comment next
>>> >>>         if you want to use this driver - we recommend using >>>

>>> Connector/J
>>> >>> though
>>> >>>    <parameter>
>>> >>>       <name>driverClassName</name>
>>> >>>       <value>org.gjt.mm.mysql.Driver</value>
>>> >>>    </parameter>
>>> >>>     -->
>>> >>>
>>> >>>    <!-- Class name for the official MySQL Connector/J driver
-->
>>> >>>    <parameter>
>>> >>>       <name>driverClassName</name>
>>> >>>       <value>com.mysql.jdbc.Driver</value>
>>> >>>    </parameter>
>>> >>>
>>> >>>    <!-- The JDBC connection url for connecting to your MySQL
dB.
>>> >>>         The autoReconnect=true argument to the url makes sure 
>>> that >>> the
>>> >>>         mm.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://localhost:3306/fyptest?autoReconnect=true</value>
>>> >>>    </parameter>
>>> >>>  </ResourceParams>
>>> >>> </Context>
>>> >>>
>>> >>> web.xml file:
>>> >>>
>>> >>>  <resource-ref>
>>> >>>      <description>DB Connection</description>
>>> >>>      <res-ref-name>jdbc/TestDB</res-ref-name>
>>> >>>      <res-type>javax.sql.DataSource</res-type>
>>> >>>      <res-auth>Container</res-auth>
>>> >>>  </resource-ref>
>>> >>>
>>> >>>
>>> >>>
>>> >>> 
>>> ---------------------------------------------------------------------
>>> >>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> >>> For additional commands, e-mail: users-help@tomcat.apache.org
>>> >>>
>>> >
>>> >
>>> >
>>> >
>>> > ---------------------------------------------------------------------
>>> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> > For additional commands, e-mail: users-help@tomcat.apache.org
>>> >
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
> ------------------------------------------------------------------------
>
> <?xml version="1.0" encoding="UTF-8"?>
> <Server>
>   <Listener className="org.apache.catalina.core.AprLifecycleListener"/>
>   <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"
>         minSpareThreads="25"
>         connectionTimeout="60000"
>         connectionLinger="-1"
>         serverSoTimeout="0"
>         maxSpareThreads="75"
>         maxThreads="150"
>         tcpNoDelay="true"
>         maxHttpHeaderSize="8192">
>     </Connector>
>     <Connector
>         port="8443"
>         scheme="https"
>         secure="true"
>         minSpareThreads="25"
>         connectionTimeout="60000"
>         clientAuth="false"
>         keystorePass="?MtHw7!"
>         connectionLinger="-1"
>         serverSoTimeout="0"
>         keystoreFile="D:\FYPCode\keystore"
>         maxSpareThreads="75"
>         maxThreads="150"
>         tcpNoDelay="true"
>         maxHttpHeaderSize="8192"
>         sslProtocol="TLS">
>     </Connector>
>     <Connector
>         port="8009"
>         redirectPort="8443"
>         protocol="AJP/1.3">
>     </Connector>
>     <Engine
>         defaultHost="localhost"
>         name="Catalina">
>       <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
>
>       <Host
>           appBase="webapps"
>           name="localhost">
>         <Valve className="org.apache.catalina.valves.AccessLogValve"
>           fileDateFormat="yyyy-MM-dd"
>           prefix="localhost_access_log."
>           suffix=".txt"/>
>         <Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
>           fileDateFormat="yyyy-MM-dd"
>           prefix="localhost_access_log."
>           suffix=".txt"/>
>
> <Context path="/DBTest" docBase="DBTest"
>         debug="5" reloadable="true" crossContext="true">
>
>     <!-- maxActive: 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.
>          -->
>
>     <!-- maxIdle: Maximum number of idle dB connections to retain in pool.
>          Set to -1 for no limit.  See also the DBCP documentation on this
>          and the minEvictableIdleTimeMillis configuration parameter.
>          -->
>
>     <!-- maxWait: 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.
>          -->
>
>     <!-- username and password: MySQL dB username and password for dB connections
 -->
>
>     <!-- driverClassName: Class name for the old mm.mysql JDBC driver is
>          org.gjt.mm.mysql.Driver - we recommend using Connector/J though.
>          Class name for the official MySQL Connector/J driver is com.mysql.jdbc.Driver.
>          -->
>     
>     <!-- url: The JDBC connection url for connecting to your MySQL dB.
>          The autoReconnect=true argument to the url makes sure that the
>          mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
>          connection.  mysqld by default closes idle connections after 8 hours.
>          -->
>
>   <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
>                maxActive="100" maxIdle="30" maxWait="10000"
>                username="javauser" password="pilks2" driverClassName="com.mysql.jdbc.Driver"
>                url="jdbc:mysql://localhost:3306/fyptest?autoReconnect=true"/>
>
> </Context>
>       </Host>
>     </Engine>
>   </Service>
> </Server>
>
>   
> ------------------------------------------------------------------------
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org

-- 
Mike Sabroff
Web Services Developer
mike.sabroff@cygnusb2b.com
920-568-8379


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message