2010-11-23 20 views
1

Tomcat 5.5のAtomkiosでJNDIサポートを設定しようとしています 私のデータベースにアクセスしようとすると、私はspring、jpa + hybernate を使用しています。このクラス ''のJDBC接続ドライバを作成できません。null

org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' 
org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82) 
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:572) 
org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:636) 
org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:665) 
org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:673) 
org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713) 
com.evolvus.springsecurity.impl.CustomJdbcDaoImpl.loadUsersByUsername(CustomJdbcDaoImpl.java:78) 
org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl.loadUserByUsername(JdbcDaoImpl.java:152) 
com.evolvus.springsecurity.impl.UsernamePasswordAuthenticationProvider.authenticate(UsernamePasswordAuthenticationProvider.java:27) 
org.springframework.security.authentication.ProviderManager.doAuthentication(ProviderManager.java:120) 
org.springframework.security.authentication.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:48) 
com.evolvus.springsecurity.impl.LoginAuthenticationFilter.attemptAuthentication(LoginAuthenticationFilter.java:38) 
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) 
org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) 
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) 
org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:109) 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) 
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149) 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 

私のconfig.xml

<beans: bean id="dataSource" 
    class="org.springframework.jndi.JndiObjectFactoryBean" > 
    <beans: property name="jndiName"> 
    <beans:value>java:comp/env/jdbc/welcome</beans:value> 
    </beans: property> 
</beans: bean> 
and i configure data source in tomcat5.5/config/context.xml  


    <Resource name="jdbc/welcome" 
    auth="Container" 
    type="com.atomikos.jdbc.AtomikosDataSourceBean" 
    factory="com.atomikos.tomcat.BeanFactory" 
    uniqueResourceName="jdbc/myDB" 
    xaDataSourceClassName="org.apache.derby.jdbc.EmbeddedXADataSource" 
    maxPoolSize="3" 
    minPoolSize="1" 
    xaProperties.databaseName="payhub" 
    xaProperties.url="jdbc\:mysql\://devserver\:3306/payhub" 
    />    

のように、私のアプリケーションのweb.xml内のエラーを取得していますと、

です10

私はここで何をしましたか?

答えて

2

は次のようにあなたのコンテキストを指定する必要があります。例えば:

META-INF/context.xmlに

<?xml version="1.0" encoding="UTF-8"?> 
<Context> 
    <Resource 
    name="jdbc/database" 
    auth="Container" 
    type="javax.sql.DataSource" 
    maxActive="4" 
    maxIdle="2" 
    username="root" 
    maxWait="5000" 
    driverClassName="com.mysql.jdbc.Driver" 
    password="password" 
    url="jdbc:mysql://localhost:3306/database_name"/> 
</Context> 

WEB-INF/web.xmlの

<web-app> 
... 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/classes/app-context.xml</param-value> 
    </context-param> 
... 
    <resource-ref> 
     <description>DB Connection</description> 
     <res-ref-name>jdbc/database</res-ref-name> 
     <res-type>javax.sql.DataSource</res-type> 
     <res-auth>Container</res-auth> 
    </resource-ref> 
</web-app> 

をapp-context.xml

ホープことができます
... 
<jee:jndi-lookup id="dataSourcejndi" jndi-name="jdbc/database" 
     lookup-on-startup="false" proxy-interface="javax.sql.DataSource" 
     cache="true" resource-ref="true" /> 
... 
<beans: bean id="dataSource" 
    class="org.springframework.jndi.JndiObjectFactoryBean" lazy-init="true"> 
    <property name="dataSource" ref="dataSourcejndi" /> 
</beans: bean> 
... 

...

+0

は、なぜ私はMETA-INF/context.xmlにする必要がありますか – SJS

関連する問題