2015-01-20 2 views
-1

Я последовал за этот ответ How to use JNDI DataSource provided by Tomcat in Spring? но я получаю следующее исключение:Как использовать источник данных JNDI, предоставленный Tomcat 7 весной?

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" 
/> 

context.xml кот

<ResourceLink global="jdbc/welcome-kit" name="jdbc/welcome-kit" type="javax.sql.DataSource" /> 

Интернет 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> 

, а также я добавил ojdbc.jar в котом/Lib

+2

Возможно, вам нужно добавить файлы конфигурации? –

ответ

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> 
+0

thx, но не работает – ekim

+0

, поскольку вы объявили источник данных в глобальном пространстве имен, вам нужно его решить, используя 'java:/jdbc/welcome-kit' – Gab

+0

появляется другая ошибка Причиненный: javax.naming.NameNotFoundException: Name [jdbc/welcome -kit] не связан в этом контексте. – ekim