2011-06-24 43 views
4

我無法部署我與MySQL 5.5.11後端到JBoss 5的Web應用程序我得到這個錯誤:找不到mysql.jdbc.Driver - MySQL和JBoss的

引起:java.lang中.ClassNotFoundException:來自BaseClassLoader的com.mysql.jdbc.Driver @ 262b2310

我在下面粘貼了我的堆棧跟蹤。

這裏是我做了什麼......

我添加使用mysql-connector-java的5.1.14-bin.jar到{JBOSS_HOME}/lib目錄(即連接器應與MySQL 5.5.11的工作權利? )。我還將mysql-ds.xml添加到{JBOSS_HOME}/server/default/deploy。

<datasources> 
    <local-tx-datasource> 
     <jndi-name>MySqlDS</jndi-name> 
     <connection-url>jdbc:mysql://localhost:3306/my_libl_db</connection-url> 
     <driver-class>com.mysql.jdbc.Driver</driver-class> 
     <user-name>root</user-name> 
     <password>test</password> 
     <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name> 
    </local-tx-datasource> 
</datasources> 

而且,我在web應用程序的classpath確信使用mysql-connector-java的5.1.14-bin.jar在我的lib文件夾中是。在JBoss管理控制檯的Resources/Datasources下,我確實看到MySqlDS狀態爲up。

我的項目(在Eclipse Indego發佈中)是一個帶有1個動態Web項目的企業應用程序項目。 Web應用程序有一個@Entity bean和一個@Stateless bean。 @Stateless被注入一個servlet(使用@EJB)。這裏是我的persistence.xml:

<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"> 
    <persistence-unit name="ContactBookPersistUnit" transaction-type="JTA"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <jta-data-source>java:/MySqlDS</jta-data-source> 
     <class>com.contact.model.Contact</class> 
     <properties> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/> 
      <property name="hibernate.hbm2ddl.auto" value="create-drop"/> 
     </properties> 
    </persistence-unit> 
</persistence> 

我能做什麼錯?

Caused by: javax.resource.ResourceException: Unable to get managed connection for MySqlDS 
    at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:441) 
    at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:381) 
    at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:496) 
    at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:941) 
    at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:89) 
    ... 65 more 
Caused by: org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.jboss.resource.JBossResourceException: Failed to register driver for: com.mysql.jdbc.Driver; - nested throwable: (java.lang.ClassNotFoundException: com.mysql.jdbc.Driver from [email protected]{[email protected]{name=vfszip:/Users/Albert/DEV/Servers/JBoss5/server/default/deploy/ContactBook.ear/ContactBookWeb.war/ [email protected]{name=vfszip:/Users/Albert/DEV/Servers/JBoss5/server/default/deploy/ContactBook.ear/ContactBookWeb.war/ parentPolicy=AFTER_BUT_JAVA_BEFORE [email protected]{vfszip:/Users/Albert/DEV/Servers/JBoss5/server/default/deploy/ContactBook.ear/}} roots=[[email protected][path=ContactBook.ear/ContactBookWeb.war/WEB-INF/classes context=file:/Users/Albert/DEV/Servers/JBoss5/server/default/deploy/ real=file:/Users/Albert/DEV/Servers/JBoss5/server/default/deploy/ContactBook.ear/ContactBookWeb.war/WEB-INF/classes]] delegates=null exported=[, com.contact.servlet, com.contact.service, com.contact.model, com.contact.control, META-INF] <IMPORT-ALL>NON_EMPTY}})) 
    at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:225) 
    at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:195) 
    at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:633) 
    at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:267) 
    at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:622) 
    at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:404) 
    ... 69 more 
Caused by: org.jboss.resource.JBossResourceException: Failed to register driver for: com.mysql.jdbc.Driver; - nested throwable: (java.lang.ClassNotFoundException: com.mysql.jdbc.Driver from [email protected]{[email protected]{name=vfszip:/Users/Albert/DEV/Servers/JBoss5/server/default/deploy/ContactBook.ear/ContactBookWeb.war/ [email protected]{name=vfszip:/Users/Albert/DEV/Servers/JBoss5/server/default/deploy/ContactBook.ear/ContactBookWeb.war/ parentPolicy=AFTER_BUT_JAVA_BEFORE [email protected]{vfszip:/Users/Albert/DEV/Servers/JBoss5/server/default/deploy/ContactBook.ear/}} roots=[[email protected][path=ContactBook.ear/ContactBookWeb.war/WEB-INF/classes context=file:/Users/Albert/DEV/Servers/JBoss5/server/default/deploy/ real=file:/Users/Albert/DEV/Servers/JBoss5/server/default/deploy/ContactBook.ear/ContactBookWeb.war/WEB-INF/classes]] delegates=null exported=[, com.contact.servlet, com.contact.service, com.contact.model, com.contact.control, META-INF] <IMPORT-ALL>NON_EMPTY}}) 
    at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.getDriver(LocalManagedConnectionFactory.java:489) 
    at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:206) 
    ... 74 more 
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver from [email protected]{[email protected]{name=vfszip:/Users/Albert/DEV/Servers/JBoss5/server/default/deploy/ContactBook.ear/ContactBookWeb.war/ [email protected]{name=vfszip:/Users/Albert/DEV/Servers/JBoss5/server/default/deploy/ContactBook.ear/ContactBookWeb.war/ parentPolicy=AFTER_BUT_JAVA_BEFORE [email protected]{vfszip:/Users/Albert/DEV/Servers/JBoss5/server/default/deploy/ContactBook.ear/}} roots=[[email protected][path=ContactBook.ear/ContactBookWeb.war/WEB-INF/classes context=file:/Users/Albert/DEV/Servers/JBoss5/server/default/deploy/ real=file:/Users/Albert/DEV/Servers/JBoss5/server/default/deploy/ContactBook.ear/ContactBookWeb.war/WEB-INF/classes]] delegates=null exported=[, com.contact.servlet, com.contact.service, com.contact.model, com.contact.control, META-INF] <IMPORT-ALL>NON_EMPTY}} 
    at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:448) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:247) 
    at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.getDriver(LocalManagedConnectionFactory.java:474) 

回答

5

文檔的此位說,你需要將JAR添加到/ lib目錄的文件在默認的服務器配置:

http://docs.jboss.org/jbossas/getting_started/v4/html/db.html

UPDATE:JBOSS 6,更新已被重寫,更模塊化。您必須將JBDC驅動程序添加到您的/ module目錄。

+0

真棒!我的.ear現在已部署,我正在體驗新的Probs。謝謝您的幫助。 – AR3Y35

+0

我複製了mysql-connector-java-5.0.7-bin.jar,但仍然無法正常工作。你能列出我已經複製到lib文件夾的jar文件的名稱 –

+0

同樣的問題在這裏我將連接器jar複製到lib仍然有連接問題,任何解決方案?威廉斯? – Ameya

相關問題