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-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to