2017-02-24 98 views
0

我有問題將我的cassandraDB連接到wildfly。我正在使用Cassandra 3.0.9和wildfly 10.1.0.Final。Wildfly無法找到cassandra jdbc驅動程序

當我開始wildfly服務器,它會給我這樣的錯誤:

錯誤[org.jboss.as.controller.management操作(Controller引導螺紋)WFLYCTL0013:操作(」添加「)失敗 - 地址:([(」subsystem「=>」datasources「),(」data-source「=>」cassandraDS「)]) - 失敗描述:{」WFLYCTL0412:未安裝的必需服務:「 => [「jboss.jdbc-driver.cassandra」],「WFLYCTL0180:缺少/不可用依賴關係的服務」=> [「jboss.driver-demander.java:jboss/datasources/cassandraDS缺失[jboss.jdbc-driver。 cassandra]「,」org.wildfly.data-source.cassandraDS is missing [jboss.jdbc-driver.cassandra]「]}

這是我standalone.xml添加卡桑德拉數據源:

... 
<subsystem xmlns="urn:jboss:domain:datasources:4.0"> 
     <datasources> 
      <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true"> 
       <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url> 
       <driver>h2</driver> 
       <security> 
        <user-name>sa</user-name> 
        <password>sa</password> 
       </security> 
      </datasource> 
      <datasource jta="false" jndi-name="java:jboss/datasources/cassandraDS" pool-name="cassandraDS" enabled="true" use-java-context="true" use-ccm="false"> 
       <connection-url>jdbc:cassandra://localhost:9042</connection-url> 
       <driver>cassandra</driver> 
      </datasource> 
      <drivers> 
       <driver name="h2" module="com.h2database.h2"> 
        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> 
       </driver> 
       <driver name="cassandra" module="org.wildfly.extension.cassandra"> 
        <datasource-class>org.apache.cassandra.cql.jdbc.CassandraDataSource</datasource-class> 
       </driver> 
      </drivers> 
     </datasources> 
</subsystem> 
... 

這裏是我爲我的卡桑德拉JDBC驅動程序module.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.0" name="org.wildfly.extension.cassandra"> 
<properties> 
    <property name="jboss.api" value="private"/> 
</properties> 
<resources> 
    <!-- the subsystem itself --> 
    <resource-root path="wildfly-cassandra.jar"/> 

    <!-- cassandra libs --> 
    <resource-root path="cassandra-all-2.1.5.jar"/> 
    <resource-root path="cassandra-thrift-2.1.5.jar"/> 

    <!-- cassandra dependencies --> 
    <resource-root path="ST4-4.0.8.jar"/> 
    <resource-root path="antlr-3.5.2.jar"/> 
    <resource-root path="antlr-runtime-3.5.2.jar"/> 
    <resource-root path="commons-cli-1.1.jar"/> 
    <resource-root path="commons-codec-1.2.jar"/> 
    <resource-root path="commons-lang3-3.1.jar"/> 
    <resource-root path="commons-math3-3.2.jar"/> 
    <resource-root path="compress-lzf-0.8.4.jar"/> 
    <resource-root path="concurrentlinkedhashmap-lru-1.4.jar"/> 
    <resource-root path="disruptor-3.0.1.jar"/> 
    <resource-root path="fastutil-6.5.7.jar"/> 
    <resource-root path="guava-16.0.jar"/> 
    <resource-root path="hibernate-validator-4.3.0.Final.jar"/> 
    <resource-root path="high-scale-lib-1.0.6.jar"/> 
    <resource-root path="httpclient-4.2.5.jar"/> 
    <resource-root path="httpcore-4.2.4.jar"/> 
    <resource-root path="jackson-core-asl-1.9.2.jar"/> 
    <resource-root path="jackson-mapper-asl-1.9.2.jar"/> 
    <resource-root path="jamm-0.3.0.jar"/> 
    <resource-root path="jbcrypt-0.3m.jar"/> 
    <resource-root path="jline-1.0.jar"/> 
    <resource-root path="jna-4.0.0.jar"/> 
    <resource-root path="json-simple-1.1.jar"/> 
    <resource-root path="libthrift-0.9.2.jar"/> 
    <resource-root path="lz4-1.2.0.jar"/> 
    <resource-root path="metrics-core-2.2.0.jar"/> 
    <resource-root path="netty-all-4.0.23.Final.jar"/> 
    <resource-root path="reporter-config-2.1.0.jar"/> 
    <resource-root path="snakeyaml-1.13.jar"/> 
    <resource-root path="snappy-java-1.0.5.jar"/> 
    <resource-root path="stream-2.5.2.jar"/> 
    <resource-root path="super-csv-2.1.0.jar"/> 
    <resource-root path="thrift-server-0.3.7.jar"/> 
    <resource-root path="validation-api-1.0.0.GA.jar"/> 

    <!-- the configuration overlays --> 
    <resource-root path="conf"/> 
</resources> 

<dependencies> 
    <module name="org.slf4j"/> 
    <module name="javax.api"/> 
    <module name="org.jboss.staxmapper"/> 
    <module name="org.jboss.as.controller"/> 
    <module name="org.jboss.as.server"/> 
    <module name="org.jboss.modules"/> 
    <module name="org.jboss.msc"/> 
    <module name="org.jboss.logging"/> 
    <module name="org.jboss.vfs"/> 
    <module name="sun.jdk"/> 
    <!-- access to sun.misc.Unsafe --> 
</dependencies> 

我已經配置我的卡桑德拉JDBC驅動程序根據這個博客: http://johnsanda.blogspot.com/2012/10/configuring-cassandra-jdbc-with-jboss.html

而我使用的jdbc驅動程序目錄是從這裏下載:

https://code.google.com/archive/a/apache-extras.org/p/cassandra-jdbc

我敢肯定我的目錄和文件是在正確的地方。我在

$ WILDFLY_HOME /模塊/系統/層/基層/組織/ wildfly /擴展/卡桑德拉的module.xml /主

與它的依賴沿。

而且我在

數據源類

$ WILDFLY_HOME /模塊/系統/層/基/組織/阿帕奇

我可以看到數據源是通過添加/卡桑德拉/ CQL/JDBC我野蠻的管理頁面。但是當我嘗試測試連接時,它失敗了。但wildfly提供的exampleDS工作非常完美。

我不知道發生了什麼事情。是否有一些版本兼容性問題?但是我沒有看到cassandra在他們的主頁上提供官方的jdbc驅動程序。

有人請幫幫我!

+0

你還可以添加你的驅動jar文件。看起來像jar不在正確的位置 – Maverick

+0

我已經將所有jar文件添加到了我的cassandra目錄中,這些都是我從本教程提供的鏈接中獲得的。我不知道我丟失了哪個jar文件。 –

+0

你是什麼意思「而我有$ WILDFLY_HOME/modules/system/layers/base/org/apache/cassandra/cql/jdbc中的數據源類」? –

回答