2015-04-08 124 views
0

JBoss從* ds.xml文件創建數據源,我想在沒有這樣的xml文件的情況下完成這個任務,並且仍然使得JBoss通過jndi提供數據源。創建JBoss數據源

我寫寄存器4周的MBean代碼:

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 

我希望能夠用下面的代碼來檢索數據源對象:

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

誰能告訴我,如果上面是一個正確的方法,如果是的話,還需要做些什麼才能使其工作?

回答

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> 

然後,在獨立,full.xml文件,你會發現一個標籤與數據源的骨灰盒,即標籤的數據源標籤內,並在司機標籤內。您需要添加這個新的JDBC,對我來說這是一個succesfull配置:

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

與配置啓動JBoss並進入檔案>連接>數據源。用你自己的配置添加一個新的(JNDI,用戶,密碼等等),不要忘記在你的數據庫中添加URL的屬性。然後,您將能夠使用JNDI作爲DataSource。