tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Smith <d...@cornell.edu>
Subject Re: Tomcat - MySQL Error: Invalid DataSource
Date Sun, 07 Dec 2008 03:12:29 GMT
Move WEB-INF/context.xml to META-INF/context.xml and restart you webapp.

-- David


On Dec 6, 2008, at 8:00 PM, gstclair <greg.st.clair@gmail.com> wrote:

>
> I am attempting to configure Tomcat to work with MySQL as described  
> on the
> Tomcat site:
> http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html
>
> I am seeing the following error:
> org.apache.jasper.JasperException: javax.servlet.ServletException:
> javax.servlet.jsp.JspException: Unable to get connection, DataSource
> invalid: "org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot  
> create JDBC
> driver of class '' for connect URL 'null'"
> org. 
> apache. 
> jasper. 
> servlet.JspServletWrapper.handleJspException(JspServletWrapper.java: 
> 522)
> org. 
> apache. 
> jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java: 
> 342)
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> root cause
>
> javax.servlet.ServletException: javax.servlet.jsp.JspException:  
> Unable to
> get connection, DataSource invalid:
> "org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC  
> driver
> of class '' for connect URL 'null'"
> org. 
> apache. 
> jasper. 
> runtime.PageContextImpl.doHandlePageException(PageContextImpl.java: 
> 852)
> org. 
> apache. 
> jasper. 
> runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
> org.apache.jsp.test_jsp._jspService(test_jsp.java:86)
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> org. 
> apache. 
> jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java: 
> 342)
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> root cause
>
> javax.servlet.jsp.JspException: Unable to get connection, DataSource
> invalid: "org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot  
> create JDBC
> driver of class '' for connect URL 'null'"
> org. 
> apache. 
> taglibs. 
> standard. 
> tag.common.sql.QueryTagSupport.getConnection(QueryTagSupport.java:276)
> org. 
> apache. 
> taglibs. 
> standard. 
> tag.common.sql.QueryTagSupport.doStartTag(QueryTagSupport.java:159)
> org.apache.jsp.test_jsp._jspx_meth_sql_005fquery_005f0(test_jsp.java: 
> 107)
> org.apache.jsp.test_jsp._jspService(test_jsp.java:63)
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> org. 
> apache. 
> jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java: 
> 342)
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>
> I am using the following software versions:
> Tomcat 6.0.16
> MySQL 5.1.30
> mysql-connector-java-5.1.7-bin.jar (jar file located at  
> $CATALINA_HOME/lib)
> Taglib 1.1 (jstl.jar and standard.jar located at webapps/DBTest/lib)
>
> My webapps/DBTest is using the following files:
> /test.jsp:
> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
>
> <sql:query var="rs" dataSource="jdbc/TestDB">
> select id, foo, bar from testdata
> </sql:query>
> <html>
> <head>
> <title>DB Test</title>
> </head>
> <body>
> <h2>Results</h2>
> <c:forEach var="row" items="${rs.rows}">
> Foo ${row.foo}<br/>
> Bar ${row.bar}<br/>
> </c:forEach>
> </body>
> </html>
>
> /WEB-INF/context.xml:
> <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="javadude"
> driverClassName="com.mysql.jdbc.Driver"
> url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>
> </Context>
>
> /WEB-INF/web.xml:
> <web-app 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"
> version="2.4">
> <description>MySQL Test App</description>
> <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>
> </web-app>
>
>
> Can anybody help me troubleshoot this? I have searched other threads  
> all
> week, and none of the other suggestions seem to help. I have tested  
> the JDBC
> connection through a small java program (and copied the connector  
> jar file
> into the Java/Extensions folder), and that worked fine. I am  
> assuming it is
> something with my web.xml and context.xml setup. Any help would be  
> greatly
> appreciated!
>
>
> I have not modified the server.xml and context.xml files in
> $CATALINA_HOME/conf
> My server.xml file is:
> <?xml version='1.0' encoding='utf-8'?>
> <!--
> Licensed to the Apache Software Foundation (ASF) under one or more
> contributor license agreements. See the NOTICE file distributed with
> this work for additional information regarding copyright ownership.
> The ASF licenses this file to You under the Apache License, Version  
> 2.0
> (the "License"); you may not use this file except in compliance with
> the License. You may obtain a copy of the License at
>
> http://www.apache.org/licenses/LICENSE-2.0
>
> Unless required by applicable law or agreed to in writing, software
> distributed under the License is distributed on an "AS IS" BASIS,
> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or  
> implied.
> See the License for the specific language governing permissions and
> limitations under the License.
> -->
> <!-- Note: A "Server" is not itself a "Container", so you may not
> define subcomponents such as "Valves" at this level.
> Documentation at /docs/config/server.html
> -->
> <Server port="8005" shutdown="SHUTDOWN">
>
> <!--APR library loader. Documentation at /docs/apr.html -->
> <Listener className="org.apache.catalina.core.AprLifecycleListener"
> SSLEngine="on" />
> <!--Initialize Jasper prior to webapps are loaded. Documentation at
> /docs/jasper-howto.html -->
> <Listener className="org.apache.catalina.core.JasperListener" />
> <!-- JMX Support for the Tomcat server. Documentation at
> /docs/non-existent.html -->
> <Listener  
> className="org.apache.catalina.mbeans.ServerLifecycleListener" />
> <Listener
> className= 
> "org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
>
> <!-- Global JNDI resources
> Documentation at /docs/jndi-resources-howto.html
> -->
> <GlobalNamingResources>
> <!-- Editable user database that can also be used by
> UserDatabaseRealm to authenticate users
> -->
> <Resource name="UserDatabase" auth="Container"
> type="org.apache.catalina.UserDatabase"
> description="User database that can be updated and saved"
> factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
> pathname="conf/tomcat-users.xml" />
> </GlobalNamingResources>
>
> <!-- A "Service" is a collection of one or more "Connectors" that  
> share
> a single "Container" Note: A "Service" is not itself a "Container",
> so you may not define subcomponents such as "Valves" at this level.
> Documentation at /docs/config/service.html
> -->
> <Service name="Catalina">
>
> <!--The connectors can use a shared executor, you can define one or  
> more
> named thread pools-->
> <!--
> <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
> maxThreads="150" minSpareThreads="4"/>
> -->
> <!-- A "Connector" represents an endpoint by which requests are  
> received
> and responses are returned. Documentation at :
> Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
> Java AJP Connector: /docs/config/ajp.html
> APR (HTTP/AJP) Connector: /docs/apr.html
> Define a non-SSL HTTP/1.1 Connector on port 8080
> -->
> <Connector port="8080" protocol="HTTP/1.1"
> connectionTimeout="20000"
> redirectPort="8443" />
> <!-- A "Connector" using the shared thread pool-->
> <!--
> <Connector executor="tomcatThreadPool"
> port="8080" protocol="HTTP/1.1"
> connectionTimeout="20000"
> redirectPort="8443" />
> -->
> <!-- Define a SSL HTTP/1.1 Connector on port 8443
> This connector uses the JSSE configuration, when using APR, the
> connector should be using the OpenSSL style configuration
> described in the APR documentation -->
> <!--
> <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
> maxThreads="150" scheme="https" secure="true"
> clientAuth="false" sslProtocol="TLS" />
> -->
>
> <!-- Define an AJP 1.3 Connector on port 8009 -->
> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
> <!-- An Engine represents the entry point (within Catalina) that  
> processes
> every request. The Engine implementation for Tomcat stand alone
> analyzes the HTTP headers included with the request, and passes them
> on to the appropriate Host (virtual host).
> Documentation at /docs/config/engine.html -->
>
> <!-- You should set jvmRoute to support load-balancing via AJP ie :
> <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
> -->
> <Engine name="Catalina" defaultHost="localhost">
>
> <!--For clustering, please take a look at documentation at:
> /docs/cluster-howto.html (simple how to)
> /docs/config/cluster.html (reference documentation) -->
> <!--
> <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
> -->
>
> <!-- The request dumper valve dumps useful debugging information about
> the request and response data received and sent by Tomcat.
> Documentation at: /docs/config/valve.html -->
> <!--
> <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
> -->
>
> <!-- This Realm uses the UserDatabase configured in the global JNDI
> resources under the key "UserDatabase". Any edits
> that are performed against this UserDatabase are immediately
> available for use by the Realm. -->
> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
> resourceName="UserDatabase"/>
>
> <!-- Define the default virtual host
> Note: XML Schema validation will not work with Xerces 2.2.
> -->
> <Host name="localhost" appBase="webapps"
> unpackWARs="true" autoDeploy="true"
> xmlValidation="false" xmlNamespaceAware="false">
>
> <!-- SingleSignOn valve, share authentication between web applications
> Documentation at: /docs/config/valve.html -->
> <!--
> <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
> -->
>
> <!-- Access log processes all example.
> Documentation at: /docs/config/valve.html -->
> <!--
> <Valve className="org.apache.catalina.valves.AccessLogValve"
> directory="logs"
> prefix="localhost_access_log." suffix=".txt" pattern="common"
> resolveHosts="false"/>
> -->
> </Host>
> </Engine>
> </Service>
> </Server>
>
> my context.xml file (in $CATALINA_HOME/conf) is:
> <?xml version='1.0' encoding='utf-8'?>
> <!-- The contents of this file will be loaded for each web  
> application -->
> <Context>
> <!-- Default set of monitored resources -->
> <WatchedResource>WEB-INF/web.xml</WatchedResource>
> </Context>
>
> -- 
> View this message in context: http://www.nabble.com/Tomcat----MySQL-Error%3A--Invalid-DataSource-tp20876682p20876682.html
> Sent from the Tomcat - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> 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


Mime
View raw message