如何将数据源与JBoss AS7连接

时间:2011-11-09 08:31:50

标签: jboss7.x

我是Jboss Application Server 7的新手。我正在尝试创建一个数据源。我在standalone.xml中添加了以下代码:

    <datasources>
        <datasource jndi-name="java:/sss" enabled="true" use-java-context="true" pool-name="sss">
            <connection-url>jdbc:oracle:thin:@ipaddress:sid</connection-url>
            <driver> ojdbc14.jar</driver>
            <pool></pool>
            <security>
                <user-name>username</user-name>
                <password>password</password>
            </security>
        </datasource>
        <drivers>
            <driver name="ojdbc14.jar" module="com.oracle">
                <xa-datasource-class>oracle.jdbc.OracleDriver</xa-datasource-class>
            </driver>
        </drivers>
    </datasources>

我已将ojdbc14.jar放在以下路径\jboss-as-web-7.0.2.Final\modules\com\oracle\main中。

我在同一路径中保留了module.xml,如下所示。

<module xmlns="urn:jboss:module:1.0" name="com.oracle">
    <resources>
        <resource-root path="ojdbc14.jar"/>
    </resources>
    <dependencies>
         <module name="javax.api"/>
         <module name="javax.transaction.api"/>
    </dependencies>
</module> 

但我得到的错误如下,

  

ERROR [stderr]线程“Controller Boot Thread”java.la中的异常   ng.RuntimeException:org.jboss.as.controller.persistence.ConfigurationPersistenc   eException:无法解析配置

任何人都可以帮我解决这个错误吗?。

4 个答案:

答案 0 :(得分:2)

您的配置看起来有问题。我的猜测是池配置。你能尝试这样的事吗:

<pool>
    <min-pool-size>1</min-pool-size>
    <max-pool-size>30</max-pool-size>
    <prefill>true</prefill>
</pool>

只是为了确保删除

中的空格
<driver> ojdbc14.jar</driver>

其他一些观点。您可能希望使用Oracle验证类。

<validation>
    <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/>
    <stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/>
    <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/>
</validation>

此外,您可能希望使用与JRE / JDK匹配的Oracle驱动程序。由于您可能不在Java 1.4上,因此不应使用ojdbc14.jar。如果您使用的是Java 1.5,则应使用ojdbc5.jar,如果使用的是Java 1.6,则应使用ojdbc6.jar。

答案 1 :(得分:0)

您可以通过两种方式部署DS:作为模块或部署。有关详细信息,请查看this article。 此外,由于某些原因,JBoss配置解析器对任何配置文件中的错误都有些敏感,请再次查看配置,查找任何拼写错误的单词或不必要的空格。

答案 2 :(得分:0)

假设您已通过配置文件阅读或了解社区文档。

链接:JBoss Application Server 7 - Datasources documentation

您是否尝试过数据源部署方法,使用管理控制台或CLI部署驱动程序?同样好奇CLI报告数据源节点上的read-resource操作。

[standalone@localhost:9999 /] /subsystem=datasources:read-resource(recursive=true)

答案 3 :(得分:-2)

我认为存在兼容性问题。

  • JBoss AS7在java 6下运行,仅适用于jdbc驱动程序版本4.0。
  • jdbc驱动程序ojdbc14.jar是用java 1.4编译的,它是jdbc 3.0或更低版本。

也许它无法一起工作。

我会尝试使用oracle11g的jdbc驱动程序(为了向后兼容)。我发现这个Interoperability Matrix用于JDBC驱动程序