7

I am using JBoss 7.1.1. When I try to start the server, I get an exception. I have tried many solutions but nothing seems to work.

The following line appears in the logs -

New missing/unsatisfied dependencies: service jboss.jdbc-driver.com_mysql (missing) dependents: [service jboss.data-source.java:jboss/MyDB]

Here is my 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>

This is my 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>

But i still got this exception

Here is my web.xml(a part of it):

<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>

Can anyone help?

4

6 回答 6

3

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

于 2013-07-08T19:41:56.243 回答
1

已解决:新的缺失/不满足的依赖项:Jboss / WildFly 10 的服务 jboss.jdbc-driver.com_

您好,首先停止 WildFly 服务器。然后更新standalone.xml 文件以添加MS-SQL JTDS 驱动程序详细信息和数据源详细信息,如下所示:

<subsystem xmlns="urn:jboss:domain:datasources:4.0">
            <datasources>
                <datasource jta="true" jndi-name="java:/jdbc/speedtest-datasource" pool-name="MSSQLDSspeedTestDEV" enabled="true" use-ccm="true">
                    <connection-url>jdbc:jtds:sqlserver://serverName:1433;DatabaseName=dbName</connection-url>
                    <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class>
                    <driver>JTDS</driver>
                    <security>
                        <user-name>username</user-name>
                        <password>password</password>
                    </security>
                    <validation>
                        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"/>
                        <background-validation>true</background-validation>
                    </validation>
                </datasource>
                <drivers>

                    <driver name="JTDS" module="net.sourceforge">
                        <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class>
                    </driver>

                </drivers>
            </datasources>
        </subsystem>

MS SQL JTDS 的 Module.xml:路径:E:\Softwares\wildfly-10.1.0.Final\wildfly-10.1.0.Final\modules\system\layers\base\net\sourceforge\main (需要创建目录结构如突出显示并添加 module.xml 和 jtds-1.3.0.jar 文件)。

(请注意,在此示例中,我使用模块名称作为“net.sourceforge”并将文件夹结构路径创建为“net\sourceforge\main”)。请注意,这对于匹配 module、xml 文件中的目录路径和模块名称更为重要。

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="net.sourceforge">
<resources>
<resource-root path="jtds-1.3.0.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>

注意:请注意上面2处绿色高亮的路径要匹配(即module.xml中的目录结构和模块名),

例如。如果您已将目录结构创建为 E:\Softwares\wildfly-10.1.0.Final\wildfly-10.1.0.Final\modules\system\layers\base\net\sourceforge\jtds\main 则 module.xml 中的模块名称文件应为“net.sourceforge.jtds”,如下所示的 module.xml 文件

Module.xml:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="net.sourceforge.jtds">
<resources>
<resource-root path="jtds-1.3.0.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>

现在保存这两个文件并重新启动 wildFLY 服务器。

Regards,
Rasool Javeed Mohammad
javeed.mca@gmail.com
于 2017-02-23T22:11:19.953 回答
0

尝试升级您的 mysql 连接器。我正在尝试部署 5.1.5(我正在从 jboss 5.1 迁移到 7.1.1,所以我只是将已经工作的环境转移到更新的容器中)。经过两天的努力,我升级到 5.1.27 并且数据源像冠军一样部署。

于 2013-11-11T21:56:51.953 回答
0

尝试从 mysql 连接器库中删除 META-INF/services/java.sql.Driver。

于 2014-05-01T01:51:09.247 回答
0

要检查此错误的一件事是确保将数据存储在正确的文件夹中。对于 JBoss EAP 7.1,它是modules\system\layers\base\com文件夹。在com文件夹内,创建一个名为的附加文件夹mysqlmain文件夹内的mysql文件夹。该main文件夹将包含 jar 文件和 module.xml 文件。

于 2018-04-02T16:33:43.457 回答
0

尝试以下步骤。我在 wildfly8.0.0-final 中和你解决了同样的问题。如果出现重复的mysql依赖项,请先删除配置,重新启动计算机后,再次尝试这些步骤。

1.创建mysql文件夹

在:${WILDFLY_HOME}/modules/system/layers/base

创建目录 com/mysql/driver/main

将驱动库jar复制到文件夹main

添加模块.xml

// urn:jboss:module:XX 应该和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>

2. 使用 CLI 将模块注册为驱动程序。

${WILDFLY_HOME}/bin/standalone.sh(仅当 wildfly 未运行时)

./jboss-cli.sh

连接

/subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql.driver,driver-class-name=com.mysql.jdbc.Driver)

如果操作成功,则会显示以下消息 {"outcome" => "success"}

并在独立配置文件的文件中生成以下代码...

<driver name="mysql" module="com.mysql.driver">
    <driver-class>com.mysql.jdbc.Driver</driver-class>
</driver>

3.在mysql中创建数据库

以root身份登录:mysql root -p
创建数据库

创建表

4. 从控制台创建到数据库的连接

http://localhost:9990/console

添加具有类似配置的数据源

name: mysql
JNDI name: java:jboss/mysql
url: jdbc:mysql://localhost:3306/your_database

完毕。

于 2018-04-04T02:59:51.927 回答