サーバー:JBOSS 5.x 次の機能は、私のセッションBean(ejb3アーキテクチャ)に書かれています
@Remote(OracleDsInteractionRemote.class)
@Local(OracleDsInteractionLocal.class)
@Stateless
@RemoteBinding(jndiBinding="OracleDsInteractionBean/remote")
@LocalBinding(jndiBinding="OracleDsInteractionBean/local")
public class OracleDsInteractionBean implements OracleDsInteractionRemote,OracleDsInteractionLocal
{
@EJB
@Resource(mappedName="java:/EncryptedDS")
private DataSource ds1;
public int getAllValues() throws Exception
{
System.out.println("************************* ");
Connection conn = ds1.getConnection();
Statement st = conn.createStatement();
String query = "SELECT count(*) FROM DETAILS_DATA";
ResultSet rs = st.executeQuery(query);
while (rs.next())
{
return rs.getInt(1);
}
return -1;
}
}
この関数は、jdbc 接続を使用して details_data テーブルから行数を取得しています。DataSource オブジェクト ds1 は「EncryptedDS」でマップされます。「EncryptedDS」のエントリは、oracle-ds.xml で次のように定義されています。
<?xml version="1.0" encoding="UTF-8"?>
<!-- ===================================================================== -->
<!-- -->
<!-- JBoss Server Configuration -->
<datasources>
<xa-datasource>
<jndi-name>EncryptedDS</jndi-name>
<xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
<xa-datasource-property name="URL">jdbc:oracle:thin:@182.158.93.26:1521:dbSid</xa-datasource-property>
<xa-datasource-property name="User">Test</xa-datasource-property>
<xa-datasource-property name="Password">pass123</xa-datasource-property>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<metadata>
<type-mapping>Oracle11g</type-mapping>
</metadata>
</xa-datasource>
</datasources>
しかし、問題は、誰でも $JBOSS_HOME/server/default/deploy ディレクトリに移動し、oracle-ds.xml から「EncryptedDS」構成を見つけることができることです.. (oracle-ds.xml では、完全なデータベース情報がテキスト (DatabaseServerIP,Port ,Sid,SchemaName,SchemaPassword))... 暗号化されたデータベース情報を oracle-ds.xml に格納するにはどうすればよいですか? 私のJavaコードは、jdbc接続を行うためにそれをどのようにデコードしますか?