无法在tc-server中为db2配置数据源

时间:2010-10-22 20:14:15

标签: java tomcat servlets jndi

尝试在spring的tc服务器中设置数据源时,我得到一个空指针异常。这基本上是Tomcat的核心。这是我得到的例外。

org.apache.naming.NamingContext lookup
WARNING: Unexpected exception resolving reference
java.lang.NullPointerException
 at java.util.Hashtable.put(Hashtable.java:394)
 at java.util.Properties.setProperty(Properties.java:143)
 at         org.apache.tomcat.jdbc.pool.DataSourceFactory.parsePoolProperties(DataSourceFactory.java:38  0)
 at     org.apache.tomcat.jdbc.pool.DataSourceFactory.createDataSource(DataSourceFactory.java:439)
 at     org.apache.tomcat.jdbc.pool.DataSourceFactory.getObjectInstance(DataSourceFactory.java:204)
 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:1024)
 at     org.apache.catalina.core.NamingContextListener.createNamingContext(NamingContextListener.ja  va:633)
 at     org.apache.catalina.core.NamingContextListener.lifecycleEvent(NamingContextListener.java:23  7)
 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4339)
 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:546)
  at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:848)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:724)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:493)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1211)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)
at    org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:741)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:587)
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:290)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415)
org.apache.catalina.core.NamingContextListener addResource
WARNING: Failed to register in JMX: javax.naming.NamingException
org.apache.catalina.core.StandardContext listenerStart

我的server.xml有以下

<GlobalNamingResources>
<Resource auth="Container" description="User database that can be updated and saved"              factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase"          pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
<Resource auth="Container" driverClassName="com.ibm.db2.jcc.DB2Driver" name="jdbc/temp"        password="XXXX" type="javax.sql.DataSource" url="jdbc:db2://localhost:50007/temp"       username="XXXX"/>
 </GlobalNamingResources>

web.xml已

<resource-ref>
 <description>
 </description>
 <res-ref-name>jdbc/temp</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
</resource-ref>