我正在运行JBoss
作为独立版本。我想连接到我当地的mysql database
我复制了模块文件夹中的mysql连接器
me@air~/Downloads/jboss/standalone/configuration - 10:56:18 $ ls ../../modules/org/mysql/main/
mysql-connector-java-5.1.22-bin.jar
接下来,我将standalone.xml
中的jboss/standalone/configuration
更改为
<drivers>
<driver name="com.mysql" module="org.mysql" />
<driver name="h2" module="com.h2database.h2"> <!-- default provided-->
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
</drivers>
然后我将数据源添加为
<datasource jndi-name="java:/bb" pool-name="bb-pool" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>jdbc:mysql://127.0.0.1:3306/mydb</connection-url>
<driver>mysql</driver>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>100</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>bb</user-name>
<password>bb</password>
</security>
<statement>
<prepared-statement-cache-size>100</prepared-statement-cache-size>
<share-prepared-statements>true</share-prepared-statements>
</statement>
</datasource>
我正在使用JBoss AS 7.1
。
当我在控制台上启动服务器时,我看到错误
10:54:47,458 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-1) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
10:54:47,671 INFO [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Service status report
JBAS014775: New missing/unsatisfied dependencies:
service jboss.jdbc-driver.mysql (missing) dependents: [service jboss.data-source.java:/bb]
10:54:47,676 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
10:54:47,676 ERROR [org.jboss.as] (Controller Boot Thread) JBAS015875: JBoss AS 7.1.1.Final "Brontes" started (with errors) in 2000ms - Started 134 of 212 services (2 services failed or missing dependencies, 74 services are passive or on-demand)
当我点击Ctrl+C
时,我看到了
^C10:54:54,998 INFO [org.jboss.as.osgi] (MSC service thread 1-8) JBAS011942: Stopping OSGi Framework
10:54:55,004 INFO [org.jboss.as.logging] JBAS011503: Restored bootstrap log handlers
10:54:55,007 INFO [com.arjuna.ats.jbossatx] ARJUNA032018: Destroying TransactionManagerService
10:54:55,008 INFO [com.arjuna.ats.jbossatx] ARJUNA032014: Stopping transaction recovery manager
10:54:55,010 INFO [org.apache.catalina.core.StandardContext] Container org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/] has not been started
10:54:55,039 INFO [org.apache.coyote.http11.Http11Protocol] Pausing Coyote HTTP/1.1 on http--127.0.0.1-8080
10:54:55,039 INFO [org.apache.coyote.http11.Http11Protocol] Stopping Coyote HTTP/1.1 on http--127.0.0.1-8080
10:54:55,043 INFO [org.jboss.as.controller] JBAS014774: Service status report
JBAS014776: Newly corrected services:
service jboss.jdbc-driver.mysql (new available)
10:54:55,044 INFO [org.jboss.as] JBAS015950: JBoss AS 7.1.1.Final "Brontes" stopped in 47ms
我是JBoss的新手,不知道如何解决这个问题或了解我在这里做错了什么
答案 0 :(得分:3)
我关注了以下博客,并且能够一次性连接到mysql数据源。绝对推荐
https://zorq.net/b/2011/07/12/adding-a-mysql-datasource-to-jboss-as-7/
答案 1 :(得分:0)
我认为在您的数据源中,您引用了驱动程序mysql
,但您将驱动程序命名为com.mysql
。
尝试将驱动程序名称更改为mysql
。
请注意:最好使用CLI安装驱动程序,并使用CLI或Web控制台构建数据源。 AS7的目的是这些工具用于您的所有配置,并且您自己触摸XML的原因很少。
答案 2 :(得分:0)
我犯了同样的错误。花了我几个小时才发现它是多么愚蠢。
在我的情况下,我在jboss-as用户下运行jboss作为服务,非常简单。除了当我创建mysql / main目录以及其中的文件时,我在另一个用户之下。 jboss-as guy没有权限。
模块/目录上的简单chown完成了这项工作。
答案 3 :(得分:0)
首先,您的驱动程序定义名称与<datasource>
定义下的驱动程序名称不匹配。将<driver name="com.mysql" ...
替换为<driver name="mysql" ...
,以使其正常工作。
其次,您是否添加了module.xml
文件?复制./modules/com/mysql/main
文件夹中的MySQL连接器jar是不够的,还必须添加module.xml
文件:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.mysql">
<resources>
<resource-root path="mysql-connector-java-5.1.26-bin.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
此外,在使用MySQL连接器版本5.0.8时,我遇到了类似的问题,其中未找到/识别驱动程序。当我切换到较新的5.1.26版本时,它消失了。
答案 4 :(得分:0)
确保您使用的是mysql jdbc connector
的最新版本,我用更换最新的mysql connetor解决了我的同样问题