首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jboss 7火鸟连接

Jboss 7火鸟连接
EN

Stack Overflow用户
提问于 2012-01-10 13:42:47
回答 2查看 2.7K关注 0票数 1

我很难从JBoss 7.1.0 CR1连接到火鸟数据库(jaybird驱动程序)

这是日志:

代码语言:javascript
复制
JBAS014775:    New missing/unsatisfied dependencies:
      service jboss.jdbc-driver.firebirdsql (missing) dependents: [service jboss.data-source.java:/tiranDS] 

我是standalone.xml

这是我的standalone.xml,有些部件被更改了,比如.(Some_path).

代码语言:javascript
复制
...

  <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中提到的所有.jars都在module.xml文件夹中)

代码语言:javascript
复制
<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>

哪里错了?

这个驱动程序类的应用程序在JBoss 5上工作,但是我尝试了org.firebirdsql.jdbc.FBDriverorg.firebirdsql.pool.FBConnectionPoolDataSource这两个类,但仍然没有改变。

此外,我尝试将jaybird-2.1.6.jar替换为jaybird-满2.1.6.jar,但错误仍然是相同的。

代码语言:javascript
复制
JBAS014775:    New missing/unsatisfied dependencies:
      service jboss.jdbc-driver.firebirdsql (missing) dependents: [service jboss.data-source.java:/tiranDS] 

虽然我确信您所说的所有标记都是正确的,但前面提到的问题似乎是,我缺少了module.xml中的一些依赖项,但我不知道是什么问题。

EN

回答 2

Stack Overflow用户

发布于 2012-01-10 13:55:55

org.firebirdsql.jdbc.FBDriver不是xa数据源类。该元素需要Jaybird中的javax.sql.XADataSource实现的名称,而不是java.sql.Driver实现。

在Jaybird2.2和更高版本中,XADataSource实现是org.firebirdsql.ds.FBXADataSource

Jaybird2.1.6及更早版本中的XADataSource实现是org.firebirdsql.pool.FBConnectionPoolDataSource (也请参阅http://web.firebirdsql.org/devel/doc/jaybird/pdf/jaybird_manual.pdf );这个类在Jaybird2.2中被废弃,在Jaybird 3中被删除。

据我所知,JBoss实际上包括一个使用Firebird的示例。(但这可能是早期版本)。

BTW:当从应用服务器使用时,您不应该使用jaybird完整的-2.1.6.jar文件,而应该使用jaybird-2.1.6.jar (因为前者包含一些已经包含在JBoss中的(旧的)JBoss接口)。

票数 2
EN

Stack Overflow用户

发布于 2012-02-09 10:59:24

也许有点晚了,关键是Firebird并不是真正的JDBC 4,所以您必须自己将驱动程序类添加到这样的配置中:

代码语言:javascript
复制
<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>

这应该能解决你的问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8804199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档