簡體   English   中英

java - 如何從tomcat的context.xml中為java中的jdbc連接傳遞加密相關的屬性?

[英]How to pass encryption related properties from tomcat's context.xml for jdbc connection in java?

我們有一個用 struts2 開發的應用程序。 使用的應用服務器是Weblogic。 我們使用的是 Sybase ASE 數據庫。 我們使用普通的 JDBC 連接到數據庫。

最近我們在weblogic服務器中開啟了加密。 所以我們添加了 3 個屬性

key="ENCRYPT_PASSWORD" value="true"

key="JCE_PROVIDER_CLASS" value="org.bouncycastle.jce.provider.BouncyCastleProvider"

key="RETRY_WITH_NO_ENCRYPTION" value="true" 

weblogic服務器用於PROD環境。 在 weblogic 中,它工作正常。 但是我們使用tomcat 7.0進行本地開發。 在 tomcat 中,我們使用帶有以下標簽的 context.xml。

<Resource name="CONN.DS" auth="Container"      
   type="javax.sql.DataSource" 
   username="abc" 
   password="dfg"      
     driverClassName="com.sybase.jdbc4.jdbc.SybDriver"    
      url="jdbc:sybase:Tds:xyz:1234/DbName"      
        maxActive="10" maxIdle="4"/>

為了在java中獲得連接,我們使用下面的代碼,

javax.sql.Datasource ds = null;
try{


            Context initContext = new InitialContext();
            Context envContext = (Context) initContext.lookup("java:/comp/env");
              ds = (DataSource) envContext.lookup("CONN.DS");

}catch(Exception e){
e.printStackTrace();
}

return ds.getConnection();

實際上在 weblogic 中,通過添加以上 3 個屬性,它工作正常。 但是在tomcat中,我們使用context.xml。 那么我們如何在eclipse和tomcat中進行連接的同時通過context.xml傳遞以上三個屬性呢?

目前,在“ ds.getConnection() ”行,它給出了錯誤:

'An exception occurred: org.apache.tomcat.dbcp.dbcp.SQLNestedException'

    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)

請指教。

使用以下連接字符串:

jdbc:sybase:Tds:xyz:1234/DbName?ENCRYPT_PASSWORD=true&JCE_PROVIDER_CLASS=org.bouncycastle.jce.provider.BouncyCastleProvider&RETRY_WITH_NO_ENCRYPTION=true

另外,檢查http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc39001.0700/html/prjdbc0700/X32549.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM