JBoss:找不到MySQL驱动程序

时间:2015-05-22 21:53:21

标签: java mysql jdbc jboss

我正在使用JBoss 7.1.1下的MySQL开发Web应用程序。 我已经按照其中一个教程在我的服务器上安装MySQL驱动程序。我创建了适当的目录,我在其中放置了驱动程序:

modules
|--com
   |--mysql
      |--main
         |--mysql-connector-java-5.1.18-bin.jar
         |--module.xml

我的module.xml如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.mysql">  
  <resources>  
    <resource-root path="mysql-connector-java-5.1.18-bin.jar"/>  
  </resources>  
  <dependencies>  
    <module name="javax.api"/>  
  </dependencies>  
</module>

我还在standalone.xml中添加了数据源和驱动程序:

<datasources>
    <datasource jndi-name="java:jboss/datasources/my_db" pool-name="MySqlDS">
        <connection-url>jdbc:mysql://localhost:3306/my_db</connection-url>
        <driver>com.mysql</driver>
        <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
        <pool>
            <min-pool-size>10</min-pool-size>
            <max-pool-size>100</max-pool-size>
            <prefill>true</prefill>
        </pool>
        <security>
            <user-name>root</user-name>
        </security>
        <statement>
            <prepared-statement-cache-size>32</prepared-statement-cache-size>
            <share-prepared-statements>true</share-prepared-statements>
        </statement>
    </datasource>
    <drivers>
        <driver name="com.mysql" module="com.mysql">
            <driver-class>com.mysql.jdbc.Driver</driver-class>
            <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
        </driver>
    </drivers>
</datasources>

然后我尝试将它注入我的bean并使用它:

@Startup
@Singleton
public class StartupBean {

    private static final Logger LOGGER = LogManager.getLogger(StartupBean.class);

    @Resource(mappedName = "java:jboss/datasources/my_db")
    private DataSource ds;

    @PostConstruct
    public void init() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            LOGGER.error("MySQL driver not found!", e);
        }
    }
}

不幸的是,当我尝试找到驱动程序时,我得到: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

我也尝试过不检查驱动程序,只需拨打ds.getConnection()。它没有任何例外。但是当我尝试在我的连接上调用方法时,我得到: java.lang.AbstractMethodError: org.jboss.jca.adapters.jdbc.jdk6.WrappedConnectionJDK6.getSchema()

这就是问题所在。配置连接时我错过了什么? DataSource根据日志进行绑定。我也尝试过更新的驱动程序版本(5.1.35-bin),但它没有改变任何东西。我的mysql数据库的版本是5.6.24。

0 个答案:

没有答案