Java 如何从jboss数据库配置中获取密码

Java 如何从jboss数据库配置中获取密码,java,database,configuration,jboss,Java,Database,Configuration,Jboss,我的问题是我在jboss部署文件夹中配置了oracle-ds.xml。我可以得到数据源和连接的实例。现在,我想通过JBossAPI从数据库配置中获取密码。我现在能做什么? 数据库配置: <datasources> <xa-datasource> <jndi-name>XPCDataSource</jndi-name> <track-connection-by-tx/> <isSameRM-overrid

我的问题是我在jboss部署文件夹中配置了oracle-ds.xml。我可以得到数据源和连接的实例。现在,我想通过JBossAPI从数据库配置中获取密码。我现在能做什么?

数据库配置:

<datasources>
  <xa-datasource>
    <jndi-name>XPCDataSource</jndi-name>
    <track-connection-by-tx/>
    <isSameRM-override-value>false</isSameRM-override-value>
    <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
    <xa-datasource-property name="URL">jdbc:oracle:thin:@172.17.16.49:1521:ora49</xa-datasource-property>
    <xa-datasource-property name="User">workbench_0628</xa-datasource-property>
    <xa-datasource-property name="Password">workbench_0628</xa-datasource-property>
    <min-pool-size>10</min-pool-size>
    <max-pool-size>50</max-pool-size>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
    <!-- Oracles XA datasource cannot reuse a connection outside a transaction once enlisted in a global transaction and vice-versa -->
    <no-tx-separate-pools/>
    <metadata>
      <type-mapping>Oracle9i</type-mapping>
    </metadata>
  </xa-datasource>
  <mbean code="org.jboss.resource.adapter.jdbc.vendor.OracleXAExceptionFormatter" name="jboss.jca:service=OracleXAExceptionFormatter">
    <depends optional-attribute-name="TransactionManagerService">jboss:service=TransactionManager</depends>
  </mbean>
</datasources>

XPCDATA源
假的
oracle.jdbc.xa.client.oraclexadasource
jdbc:oracle:thin:@172.17.16.49:1521:ora49
工作台(u 0628)
工作台(u 0628)
10
50
org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
Oracle9i
jboss:service=TransactionManager

您尝试过类似的方法吗

   Connection conn = myJBossDatasource.getConnection();
   WrappedConnection wrappedConn = (WrappedConnection)conn;
   Connection underlyingConn = wrappedConn.getUnderlyingConnection();
   OracleConnection oracleConn = (OracleConnection)underlyingConn;
我主要使用BEA/Oracle(Weblogic),但很久以前就这么做了。。。如果签出OracleConnection对象,它会有一些常量:

   CONNECTION_PROPERTY_PASSWORD
   CONNECTION_PROPERTY_USER_NAME
  • 见:(JavaDoc)

我已经阅读了OracleConnection API,如上所述进行了尝试,并正确获得了OracleConnection实例。但是不可能通过连接属性密码和连接属性用户名的常量来获取用户名和密码,因为连接属性密码和连接属性用户名在oracle.jdbc.OracleConnection的源代码中不存在(oracle jdbc驱动程序版本-“10.2.0.5.0”,ojdbc14.jar)。>另外,通过调用oracleConn.getConnectionAttributes()和oracleConn.getProperties(),我在属性中找不到密码。这方面运气好吗?