![](/img/trans.png)
[英]IBM Worklight - Runtime: org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver
[英]org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
我正在使用spring,hybernate + jpa進行基於Web的項目。我正在嘗試使用Atomkios配置JTA Transactions,我的后端是mySql。 我無法設置應用程序以與mySql一起使用。 我的網絡服務器是tomcat 5.5。我正在嘗試cal jndi配置數據源..這里我的代碼是
persistence.xml中:
<persistence-unit name="exhub" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:comp/env/jdbc/exampleWeb</jta-data-source>
<mapping-file>META-INF/orm.xml</mapping-file>
<class>com.evolvus.common.model.Talogin</class>
<class>com.evolvus.common.model.TaUser</class>
-----------------
-----------------
<properties>
<property name="hibernate.transaction.manager_lookup_class"
value="com.atomikos.icatch.jta.hibernate3.TransactionManagerLookup"/>
</ properties>
</persistence-unit>
</persistence>
orm.xml中:
<description>Evolvus Solutions</description>
<package>com.evolvus.common.model</package>
<entity class="com.evolvus.common.model.TaUser" name="TaUser">
<table name="ta_user" />
<attributes>
<id name="userId">
<column name="USER_ID"/>
<generated-value strategy="TABLE" />
</id>
<basic name="userName">
<column name="USER_NAME" length="50" />
</basic>
</attributes>
</entity>
---------------
--------------
---------------
</entity-mappings>
config.xml文件:
<beans: bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<beans: property name="useTransactionAwareDataSource"
value="true" />
<beans: property name="hibernateProperties">
<beans: props>
<beans: prop key="hibernate.dialect">${database.target}</beans:prop>
<beans: prop key="hibernate.connection.isolation">3</beans:prop>
<beans: prop key="hibernate.current_session_context_class">jta</beans:prop>
<beans: prop key="hibernate.transaction.factory_class">com.atomikos.icatch.jta.hibernate3.AtomikosJTATransactionFactory
</beans: prop>
<beans: prop key="hibernate.transaction.manager_lookup_class">com.atomikos.icatch.jta.hibernate3.TransactionManagerLookup
</beans: prop>
<beans: prop key="hibernate.connection.release_mode">on_close</beans: prop>
<beans: prop key="hibernate.show_sql">false</beans: prop>
</beans: props>
</beans: property>
</beans: bean>
<beans: bean id="jpaTemplate" class="org.springframework.orm.jpa.JpaTemplate">
<beans: property name="entityManagerFactory">
<beans: ref bean="entityManagerFactory" />
</beans: property>
</beans: bean>
<beans: bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<beans: property name="persistenceUnitName" value="payhub" />
<beans: property name="jpaVendorAdapter">
<beans:bean
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<beans: property name="generateDdl" value="false" />
<beans: property name="showSql" value="true" />
<beans: property name="databasePlatform" value="${database.target}" />
</beans: bean>
</beans: property>
<beans: property name="persistenceXmlLocation">
<beans: value>classpath:META-INF/persistence.xml</beans:value>
</beans: property>
</beans: bean>
</beans: beans>
我在tomcat 5.5中配置了jndi
Apache Software Foundation \\ Tomcat 5.5 \\ conf.xml:
<Resource
name="jdbc/exampleWeb"
type="javax.sql.DataSource"
maxActive="4"
maxIdle="2"
username="root"
maxWait="5000"
validationQuery="SELECT=1"
driverClassName="com.mysql.jdbc.Driver"
password="roopt"
url="jdbc\:mysql\://localhost\:3306/welcomeHub"/>
and my application\web.xml
<resource-ref>
<description>PaymentsDatabase</description>
<res-ref-name>jdbc/exampleWeb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
我的服務器很好,但當我嘗試訪問數據庫時,我的Web瀏覽器出現以下錯誤
org.springframework.jdbc.CannotGetJdbcConnectionException:無法獲取JDBC連接; 嵌套異常是org.apache.tomcat.dbcp.dbcp.SQLNestedException:無法為連接URL創建類''的JDBC驅動程序'null'org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82)
幫我
我認為你的應用程序沒有找到mysql連接器jar文件或你的url配置錯誤。
請嘗試以下方法
更改您的context.xml,使其具有Resource,如下所示。
\n\n
\n\n<Resource name="jdbc/exampleWeb" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" username="root" maxWait="10000" driverClassName="com.mysql.jdbc.Driver" password="roopt" url="jdbc:mysql://localhost:3306/welcomeHub"/>
我無法理解為什么你需要entityManagerFactory
和sessionFactory
,通常只需要其中一個。
如果不需要sessionFactory
,請將其刪除。 否則請注意其數據源未配置 - 我想這是一個原因。
我已經看到與DBCP相同的錯誤,並且通常意味着它找不到JDBC驅動程序...確保容器可以使用“ com.mysql.jdbc.Driver”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.