我按照这个回答How to use JNDI DataSource provided by Tomcat in Spring?但是我得到以下例外:
java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:524)
at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:493)
at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
at java.sql.DriverManager.getDriver(DriverManager.java:273)
at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:224)
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:120)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:143)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:132)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
tomcat server.xml:
<GlobalNamingResources>
<Resource
name="jdbc/welcome-kit"
global="jdbc/welcome-kit"
auth="Container"
type="javax.sql.DataSource"
username="name"
password="pass"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="host/port:test"
maxActive="8"
maxIdle="4"
/>
tomcat context.xml
<ResourceLink global="jdbc/welcome-kit" name="jdbc/welcome-kit" type="javax.sql.DataSource" />
web application web.xml:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/welcome-kit</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
弹簧context.xml中:
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/welcome-kit">
</bean>
我还在tomcat / lib
中添加了ojdbc.jar答案 0 :(得分:0)
在web.xml中
<resource-ref>
<res-ref-name>myDatasource</res-ref-name>
<res-type>javax.sql.XADataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
在你的春季申请环境中:
<!-- Define the JNDI datasource -->
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/myDatasource" />
</bean>