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);
有人可以告诉我上述是否是正确的方法,如果是,还需要做些什么才能使其发挥作用?
答案 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。