2013-11-25 130 views
1

我忙于从JBoss 7.1.1升级到Wildfly 8.0.0.Beta1。我在JBoss下使用JTDS数据库驱动没有任何问题,但它在WildFly下不能​​工作。WildFly下的JTDS模块(JBoss)

我在我的WildFly安装中创建了下的/net/sourceforge/jtds/main/文件夹结构,并添加了module.xml文件,但Wildfly似乎没有选择它。

我也尝试过/modules/system/layers/base/文件夹,因为这是WildFly下的一个新文件夹,但这也不起作用,而且我也下载了最新的JTDS .JAR文件。

当我开始Wildfly我得到的错误是:

ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation ("add") failed - address: ([ 
    ("subsystem" => "datasources"), 
    ("data-source" => "SCI_ODS_sql2") 
]) - failure description: {"JBAS014771: Services with missing/unavailable dependencies" => [ 
    "jboss.data-source.java:jboss/datasources/SCI_ODS is missing [jboss.jdbc-driver.JTDS]", 
    "jboss.driver-demander.java:jboss/datasources/SCI_ODS is missing [jboss.jdbc-driver.JTDS]" 
]} 
ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation ("add") failed - address: ([ 
    ("subsystem" => "datasources"), 
    ("data-source" => "SCI_ODS_sql2") 
]) - failure description: { 
    "JBAS014771: Services with missing/unavailable dependencies" => [ 
     "jboss.data-source.java:jboss/datasources/SCI_ODS is missing [jboss.jdbc-driver.JTDS]", 
     "jboss.driver-demander.java:jboss/datasources/SCI_ODS is missing [jboss.jdbc-driver.JTDS]" 
    ], 
    "JBAS014879: One or more services were unable to start due to one or more indirect dependencies not being available." => { 
     "Services that were unable to start:" => [ 
      "jboss.data-source.reference-factory.SCI_ODS_sql2", 
      "jboss.naming.context.java.jboss.datasources.SCI_ODS" 
     ], 
     "Services that may be the cause:" => ["jboss.jdbc-driver.JTDS"] 
    } 
} 

如果我运行/subsystem=datasources:installed-drivers-list UON jboss-cli.sh那只能说明是默认,而不是一个JTDS安装了H2的驱动程序。

回答

2

我没有正确设置驱动程序standalone.xml。我确信自己已经做到了。已添加:

<driver name="JTDS" module="net.sourceforge.jtds"> 
    <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class> 
    <xa-datasource-class>net.sourceforge.jtds.jdbcx.JtdsDataSource</xa-datasource-class> 
</driver> 
+0

好的,请将您的问题设置为“已回答”。提前致谢。 –

-1

首先,停止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> 

Module.xml为MS SQL JTDS:路径:E:\软件\ 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”)。请注意,这对于匹配模块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> 

注:请注意,路径绿色高亮显示在以上两个地方应该匹配(在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如下所示。