tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jayaprakash Ramsaran <jayaprakash.ramsa...@gmail.com>
Subject Error in configuring JDBC Datasource
Date Sun, 14 Nov 2010 13:54:57 GMT
Sever: Springsource tc server-developer-2.1.0/ tomcat-6.0.29.B
O/S: Windows Vista
I am using Springsource Tool Suite 2.5.1 and tc server 2.1. I am
trying to configure a data source to PostgresSql. I followed the steps
outlined in http://tomcat.apache.org/tomcat-6.0-...tml#PostgreSQL.

1. I tried to add data source resource in
$CATALINA_BASE/conf/Catalina/localhost/<myappcontextfilename>.xml file
similar to the one below. Unfortunately, Springtool suite keeps
overwriting this file and the <Resource name...> definition is lost.
Springsuite overwrites it with <Context docBase.... source=..../>
without resource name definition.

            <Context
docBase="C:\springsource\tc-server-developer-2.0.4.RELEASE\spring-insight-instance\wtpwebapps\myapp"
path="/myapp" reloadable="true"
source="org.eclipse.jst.jee.server:myapp">
                <Resource name="jdbc/postgres" auth="Container"
type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
                    url="jdbc:postgresql://localhost:5432/myapp"
username="postgres" password="password" maxActive="20"
                    maxIdle="10" maxWait="-1"/>
            </Context>

2. Then I attempted to define it as a global resource though the
Apache link warns that it some time does not work. The definition is
given below.

    <GlobalNamingResources>
        <Resource auth="Container"
driverClassName="org.postgresql.Driver" maxActive="20" maxIdle="10"
maxWait="-1" name="jdbc/postgres" password="password"
type="javax.sql.DataSource"
url="jdbc:postgresql://localhost:5432/myapp" username="postgres"/>
    </GlobalNamingResources>

3. Then I add the resource reference in web.xml as below.

  <resource-ref>
    <description>postgreSQL Datasource example</description>
    <res-ref-name>jdbc/postgres</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>

4. But when the spring tc server comes up, it gives the below error.

Nov 13, 2010 10:42:09 PM org.apache.naming.NamingContext lookup
WARNING: Unexpected exception resolving reference
java.sql.SQLException
	at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:201)
	at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:150)
	at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:619)
	at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:562)
	at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:425)
	at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:130)
	at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:93)
	at org.apache.tomcat.jdbc.pool.DataSourceFactory.createDataSource(DataSourceFactory.java:490)
	at org.apache.tomcat.jdbc.pool.DataSourceFactory.getObjectInstance(DataSourceFactory.java:219)
	at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140)
	at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
	at org.apache.catalina.core.NamingContextListener.addResource(NamingContextListener.java:1020)
	at org.apache.catalina.core.NamingContextListener.createNamingContext(NamingContextListener.java:629)
	at org.apache.catalina.core.NamingContextListener.lifecycleEvent(NamingContextListener.java:237)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4540)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:568)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1282)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:807)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
	at org.apache.catalina.core.StandardService.start(StandardService.java:519)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.NullPointerException
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:247)
	at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:195)
	... 41 more
Nov 13, 2010 10:42:09 PM
org.apache.catalina.core.NamingContextListener addResource
WARNING: Failed to register in JMX: javax.naming.NamingException
Nov 13, 2010 10:42:11 PM org.apache.catalina.core.ApplicationContext log

5. Finally I configured the data source using Data Source Explorer. I
set-up with the same parameters as given above in
<GlobalNamingResources>. When I click on Test Connection, I get Ping
Successful message. When I expand the 'jdbc/postgres' connection in
Data Source Explorer, I am able to see myapp database.

6. But when I use the below code snippet to obtain data source, I
still get the error.

		System.out.println("before initialcontext");
		InitialContext ctx = null;
		DataSource ds = null;
		try {
			ctx = new InitialContext();
			System.out.println("after initialcontext");
			if ( ctx == null ) {
				   System.out.println("Uh oh -- no context!");
			} else {
					System.out.println("Context not null");
			}			
			
			ds = (DataSource) ctx.lookup( "java:/comp/env/jdbc/postgres" );			
		} catch (NamingException nae) {
			System.out.println("NAE Message = " + nae.getMessage());
			nae.printStackTrace();
		}
		
		if ( ds == null ) {
		   System.out.println("Data source not found!");
		} else {
			System.out.println("Data source found!");
		}

I get the below error.

before initialcontext
after initialcontext
Context not null
NAE Message = null
javax.naming.NamingException
	at org.apache.naming.NamingContext.lookup(NamingContext.java:805)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
	at org.apache.naming.SelectorContext.lookup(SelectorContext.java:152)
	at javax.naming.InitialContext.lookup(InitialContext.java:392)
	at com.mybuildingspace.mybuilding.service.delivery.DeliveryServiceImpl.getDeliveryList(DeliveryServiceImpl.java:40)
	at com.mybuildingspace.mybuilding.web.delivery.DeliveryJqgridDataController.handleRequest(DeliveryJqgridDataController.java:27)
	at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:788)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:717)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

......
Data source not found!

7. Please Help! I have been struggling with this for almost 3 days .
Thanks in advance for all your help

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


Mime
View raw message