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