You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by "ks.foong" <ks...@mynetsec.com> on 2006/05/31 10:22:15 UTC
RE: JNDI data source failing
Hi, I have just solved this problem on my machine. I notice it does not
locate the .jar file required by the Data source connection pooling.
Try putting all the files, mentioned in here:
http://tomcat.apache.org/tomcat-5.0-doc/jndi-datasource-examples-howto.html
Jakarta-Commons DBCP 1.0
Jakarta-Commons Collections 2.0
Jakarta-Commons Pool 1.0
But I have to remind you, put those packages in the
[CATALINA_HOME]/shared/lib folder instead of [CATALINA_HOME]/common/lib.
Update me if it's help. I just noticed this issue.
Foong Kim Seong
-----Original Message-----
From: Dan Simmonds [mailto:danoxster@gmail.com]
Sent: Wednesday, May 31, 2006 4:10 PM
To: Tomcat Users List
Subject: Re: JNDI datasource failing
I have tried to put the resource in the server.xml file, and found that
the same problem occurred.
Also the exact same configuration works flawlessly in my test
environment, so I don't know. I'd rather keep the details in my webapp's
context if possible.
Dan
Martin Grogan wrote:
> Hi Dan,
> I had the exact problem with my hosting company. The problem was the
> resource was not being read from our context.xml file on Tomcat
> startup. The guys at the hosting company had to put the entry for the
> resource inside our context in the Tomcat common config.
> Maybe you are experiencing something like this?
> Martin
>
>
> Dan Simmonds wrote:
>
>> I hope someone can help me with this problem. I have a webapp that
>> used an JNDI datasource that runs fine on my local test environment.
>> When I put it on my server it fails with the following error:
>>
>> 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'"
>>
>> JDBC drivers for postgreSQL are in <tomcat_home>/common/lib.
>> I wrote a java app that uses straight JDBC with the same connection
>> URL and other parameters and it worked just fine.
>>
>> My local test environment is tomcat 5.5 running through eclipse with
>> the web tools plugins.
>> In production I'm using tomcat 5.5 also, exporting my project as a
>> WAR file.
>>
>> I'm at a loss as to what could be wrong. Can anyone help me?
>>
>> Dan
>>
>> Here are my configuration files:
>>
>> server.xml
>> --------------------------
>>
>> <Server port="8005" shutdown="SHUTDOWN">
>>
>> <Listener
>> className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
>> />
>> <Listener
>>
className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
>>
>>
>> <!-- Define the Tomcat Stand-Alone Service -->
>> <Service name="Catalina">
>> <!-- Define an AJP 1.3 Connector on port 8009 -->
>> <Connector port="8009"
>> enableLookups="false" redirectPort="8443"
>> protocol="AJP/1.3" />
>>
>> <!-- 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). -->
>> <!-- Define the top level container in our container
>> hierarchy -->
>> <Engine name="Catalina" defaultHost="localhost">
>>
>>
>> <!-- Define the default virtual host -->
>> <Host name="localhost" appBase="webapps"
>> unpackWARs="true" autoDeploy="true"
>> xmlValidation="false" xmlNamespaceAware="false">
>>
>> <Valve className="org.apache.catalina.valves.AccessLogValve"
>> directory="logs" prefix="localhost_access_log."
>> suffix=".txt"
>> pattern="common" resolveHosts="false"/>
>> </Host>
>>
>> <Host name="xxxx.xxxxx.com" appBase="/var/www/xxxx"
>> unpackWARs="false" autoDeploy="true">
>>
>> <Context path="/" docBase="xxxxWeb.war" debug="0"
>> reloadable="true"/>
>>
>> <Valve className="org.apache.catalina.valves.AccessLogValve"
>> directory="logs" prefix="trinket_access_log."
>> suffix=".txt"
>> pattern="common" resolveHosts="false"/>
>> </Host>
>> </Engine>
>> </Service>
>> </Server>
>>
>> META-INF/context.xml
>> --------------------------------------------
>>
>> <Context>
>> <!-- defines the trinket database as a resource -->
>> <Resource name="jdbc/xxxxDB"
>> auth="Container"
>> factory="org.apache.commons.dbcp.BasicDataSourceFactory"
>> type="javax.sql.DataSource"
>> driverClassName="org.postgresql.Driver"
>> url="jdbc:postgresql://localhost:5432/database"
>> username="user"
>> password="pass"
>> maxActive = "10"
>> maxWait = "10000"
>> removeAbandoned = "true"
>> removeAbandonedTimeout = "60"
>> maxIdle = "5"
>> validationQuery = "select 1"
>> testWhileIdle = "true"
>> initialSize = "5"
>> minIdle = "3"
>> timeBetweenEvictionRunsMillis = "30000"
>> numTestsPerEvictionRun = "3"
>> minEvictableIdleTimeMillis = "24000" />
>> </Context>
>>
>>
>>
>> WEB-INF/web.xml
>> -----------------------------------------------
>>
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <web-app id="WebApp_ID" 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>Website</display-name>
>> <welcome-file-list>
>> <welcome-file>index.jsp</welcome-file>
>> </welcome-file-list>
>>
>> <!-- defines the datasource for database lookups -->
>> <resource-ref>
>> <description>Database Connection</description>
>> <res-ref-name>jdbc/xxxxDB</res-ref-name>
>> <res-type>javax.sql.DataSource</res-type>
>> <res-auth>Container</res-auth>
>> </resource-ref>
>> </web-app>
>>
>>
>> index.jsp
>> ---------------------------------------
>>
>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
>> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
>> <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
>> pageEncoding="ISO-8859-1"%>
>> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
>> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
>> <%-- here we test to see if an email address has been submitted or
>> not --%>
>> <c:if test="${param.go == 'go'}">
>> <sql:query var="emailCheck" dataSource="jdbc/trinketDB">select
>> address from email_store where address='${param.email}'</sql:query>
>> ${emailCheck.rowCount}
>> <c:if test="${emailCheck.rowCount < 1}">
>> <sql:update dataSource="jdbc/trinketDB">insert into
>> email_store (address) values ('${param.email}')</sql:update>
>> <c:set var="emailGiven" value="true" scope="session" />
>> </c:if>
>> </c:if>
>>
>> ....
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>>
>
>
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org