我正在使用JBoss 7.1.1。当我尝试启动服务器时,我得到一个例外。我尝试了很多解决方案,但似乎没有任何效果。
以下行显示在日志中 -
New missing/unsatisfied dependencies:
service jboss.jdbc-driver.com_mysql (missing) dependents: [service jboss.data-source.java:jboss/MyDB]
这是我的standalone.xml:
</datasource>
<datasource jta="true" jndi-name="java:jboss/MyDB" pool-name="MyDB_Pool" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>jdbc:mysql://localhost:3306/test</connection-url>
<driver>com.mysql</driver>
<security>
<user-name>root</user-name>
<password>root</password>
</security>
<timeout>
<idle-timeout-minutes>0</idle-timeout-minutes>
<query-timeout>600</query-timeout>
</timeout>
<statement>
<prepared-statement-cache-size>100</prepared-statement-cache-size>
<share-prepared-statements>true</share-prepared-statements>
</statement>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="com.mysql" module="com.mysql">
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
这是我的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.24-bin.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
<module name="javax.validation.api"/>
</dependencies>
</module>
但我仍然有这个例外
这是我的web.xml(其中的一部分):
<resource-ref id="ResourceRef_1">
<res-ref-name>MyDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
<lookup-name>java:jboss/datasources/MyDB</lookup-name>
</resource-ref>
有人可以帮忙吗?
答案 0 :(得分:2)
您的module.xml
应该是这样的:
<module xmlns="urn:jboss:module:1.0" name="com.mysql" slot="main">
<resources>
<resource-root path="mysql-connector-java-5.1.24-bin.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
</dependencies>
</module>
并确保您在mysql-connector-java-5.1.24-bin.jar
的同一文件夹中有mysql-connector-java-5.1.24-bin.jar.index
和module.xml
。
答案 1 :(得分:0)
尝试升级你的mysql-connector。我试图部署5.1.5(我正在从jboss 5.1迁移到7.1.1,所以我只是将已经工作的环境移动到更新的容器)。经过两天的攻击,我升级到5.1.27,数据源就像一个冠军。
答案 2 :(得分:0)
尝试从mysql连接器lib中删除META-INF / services / java.sql.Driver。
答案 3 :(得分:0)
检查此错误的一件事是确保将数据存储在正确的文件夹中。对于JBoss EAP 7.1,它是modules\system\layers\base\com
文件夹。在com
文件夹内,在mysql
文件夹中创建一个名为main
的附加文件夹和一个mysql
文件夹。 main
文件夹将保存jar文件和module.xml文件。
答案 4 :(得分:0)
尝试以下步骤。我在wildfly8.0.0-final中解决了同样的问题。如果出现重复的mysql依赖项,首先删除配置,重新启动计算机后,再次尝试这些步骤。
下:$ {WILDFLY_HOME} / modules / system / layers / base
创建目录com / mysql / driver / main
将驱动程序库jar复制到主文件夹
中添加module.xml
// urn:jboss:module:X.X应该与wildfly的版本相同,你可以参考其他模块。
<module xmlns="urn:jboss:module:1.1" name="com.mysql.driver">
<resources>
<resource-root path="mysql-connector-java-5.1.16.jar" />
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
$ {WILDFLY_HOME} /bin/standalone.sh(仅当wildfly未运行时)
./ jboss-cli.sh
连接
/子系统=数据源/ JDBC驱动器的MySQL =:添加(驱动程序名称= MySQL的,驱动器模块名= com.mysql.driver,驱动器类名= com.mysql.jdbc.Driver)
如果操作成功,则会显示以下消息{“outcome”=&gt; “成功”}
并在独立配置文件的文件中生成以下代码 ...
<driver name="mysql" module="com.mysql.driver">
<driver-class>com.mysql.jdbc.Driver</driver-class>
</driver>
以root身份登录:mysql root -p
创建数据库
创建表格
使用
等配置添加数据源name: mysql
JNDI name: java:jboss/mysql
url: jdbc:mysql://localhost:3306/your_database
进行。