2012-01-10 283 views
1

我遇到麻煩的JBoss 7.1.0接法到Firebird數據庫(jaybird驅動程序)CR1的Jboss 7火鳥連接

這是日誌:

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

這是standalone.xml

這是我standalone.xml [某些部分發生改變,就像...(SOME_PATH)...]

... 

    <subsystem xmlns="urn:jboss:domain:datasources:1.0"> 
      <datasources> 
       <datasource jndi-name="java:/tiranDS" pool-name="TiranPool" enabled="true" jta="true" use-java-context="true" use-ccm="true"> 
        <connection-url> 
         jdbc:firebirdsql:serversp/3050:C:\Program Files\...(some_path)...\tiran.gdb 
        </connection-url> 
        <driver> 
         firebirdsql 
        </driver> 
        <pool> 
         <prefill> 
          false 
         </prefill> 
         <use-strict-min> 
          false 
         </use-strict-min> 
         <flush-strategy> 
          FailingConnectionOnly 
         </flush-strategy> 
        </pool> 
        <security> 
         <user-name> 
          username 
         </user-name> 
         <password> 
          pass 
         </password> 
        </security> 
       </datasource> 
       <drivers> 
        <driver name="firebirdsql" module="org.firebirdsql"> 
         <xa-datasource-class> 
          org.firebirdsql.jdbc.FBDriver 
         </xa-datasource-class> 
        </driver> 
       </drivers> 
      </datasources> 
     </subsystem> 
... 

module.xml看起來像日是(在module.xml中提到的所有.jar文件都在... \ jboss的-AS-7.1.0.CR1b \模塊\組織\ firebirdsql \主文件夾)

<module xmlns="urn:jboss:module:1.0" name="org.firebirdsql"> 
    <resources> 
     <resource-root path="jaybird-full-2.1.6.jar"/> 
     <resource-root path="jaybird-pool-2.1.6.jar"/> 
     <resource-root path="log4j-1.2.13.jar"/> 
     <resource-root path="jboss-javaee.jar"/> 
     <resource-root path="jmxri.jar"/> 
     <resource-root path="jmxtools.jar"/> 
     <resource-root path="sax2.jar"/> 

     <resource-root path="commons-logging-1.1.jar"/> 
     <resource-root path="junit-3.8.1.jar"/> 

    </resources> 

    <dependencies> 
     <module name="javax.api"/> 
     <module name="javax.activation.api"/> 
     <module name="javax.xml.soap.api"/> 
     <module name="javax.servlet.api"/> 
     <module name="org.jboss.common-core"/> 
     <module name="org.jboss.logging"/> 
     <module name="javax.mail.api"/> 


     <module name="org.apache.log4j"/>    
     <module name="org.jboss.logmanager.log4j"/> 
     <module name="org.apache.james.mime4j"/> 
     <module name="org.apache.commons.codec"/> 
     <module name="org.apache.commons.collections"/> 
     <module name="org.apache.commons.io"/> 
     <module name="org.apache.commons.lang"/> 
     <module name="org.apache.commons.logging"/> 
     <module name="org.apache.httpcomponents"/> 
     <module name="org.apache.xalan"/> 
     <module name="org.apache.xerces"/> 
     <module name="org.w3c.css.sac"/> 
     <module name="net.sourceforge.cssparser"/> 
     <module name="net.sourceforge.nekohtml"/> 
    </dependencies> 
</module> 

Whati是錯在這裏?曾在JBoss 5

與此驅動程序類

應用程序,但我都試過類org.firebirdsql.jdbc.FBDriverorg.firebirdsql.pool.FBConnectionPoolDataSource仍然沒有改變。

此外,我已經嘗試把jaybird-2.1.6.jar而不是jaybird-full-2.1.6.jar,但仍然錯誤是一樣的。

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

雖然我敢肯定,所有你說,馬克是真的,好像這個問題在這之前所有上述就是我缺少module.xml一些依賴,但我不知道至極。

回答

1

org.firebirdsql.jdbc.FBDriver不是xa-datasource-class。此元素需要Jaybird中javax.sql.XADataSource實現的名稱,而不是java.sql.Driver實現。

在Jaybird 2.1.6的XADataSource實現org.firebirdsql.pool.FBConnectionPoolDataSource(也http://web.firebirdsql.org/devel/doc/jaybird/pdf/jaybird_manual.pdf見)

據我知道的JBoss實際上包括使用火鳥的例子。 (但可能是早期版本)。在使用應用程序服務器時,不應該使用jaybird-full-2.1.6.jar文件,而應該使用jaybird-2.1.6.jar(因爲前者包含一些(舊的)JavaEE接口包括在JBoss中)

1

也許有點晚了,我只是想說明火鳥是不是真的JDBC 4所以你要自己添加的驅動程序類的配置是這樣的:

<driver name="firebirdsql" module="org.firebirdsql"> 
    <driver-class>org.firebirdsql.jdbc.FBDriver</driver-class> 
    <xa-datasource-class>org.firebirdsql.pool.FBConnectionPoolDataSource</xa-datasource-class> 
</driver> 

這應該解決您的問題