JBoss数据源创建

时间:2015-04-08 10:14:35

标签: java jboss

JBoss从* ds.xml文件创建数据源,我想在没有这样的xml文件的情况下这样做,并且仍然让JBoss通过jndi提供数据源。

我编写的代码注册了4个mbeans:

RARDeployment at jboss.jca:service=ManagedConnectionFactory,name=" + dataSourceJndiUrl

JBossManagedConnectionPool at "jca:service=ManagedConnectionPool,name=" + dataSourceJndiUrl

TxConnectionManager at "jboss.jca:service=XATxCM,name=" + dataSourceJndiUrl

WrapperDataSourceService at "jboss.jca:service=DataSourceBinding,name=" + dataSourceJndiUrl

我希望能够使用以下代码检索DataSource对象:

InitialContext ctx = null;
ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup(dataSourceJndiUrl);

有人可以告诉我上述是否是正确的方法,如果是,还需要做些什么才能使其发挥作用?

1 个答案:

答案 0 :(得分:0)

是的,是可能的,也是最好的方法。

就我而言,我需要使用独立完整配置(EAP 6.2)。 您需要的第一个是数据库的正确JDBC,例如我使用了ojdbc6.jar。将此Jar复制到$ {JBOSS_HOME} / modules / com / oracle / main /。 JDBC必须带有module.xml才能使其对JBoss有效。对我来说,这是module.xml的正确配置:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.oracle">
    <resources>
        <resource-root path="ojdbc6.jar"/>
    </resources> 
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/> 
    </dependencies>
</module>

然后,在standalone-full.xml文件中,您将找到一个带有datasources的标记,在该标记内部的数据源标记,以及在drivers标记内。你需要添加这个新的JDBC,这是一个成功的配置:

<drivers>
  <driver name="Oracle" module="com.oracle">
    <xa-datasource-class>com.oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
  </driver>
</drivers>

使用该配置启动JBoss并转到Profile&gt;连接器&gt;数据源。使用您自己的配置添加一个新的(JNDI,用户,密码等...),不要忘记在数据库的URL上添加属性。然后,您将能够将JNDI用于DataSource。