我们有一个用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)
请告知。
答案 0 :(得分:1)
使用以下连接字符串:
jdbc:sybase:Tds:xyz:1234/DbName?ENCRYPT_PASSWORD=true&JCE_PROVIDER_CLASS=org.bouncycastle.jce.provider.BouncyCastleProvider&RETRY_WITH_NO_ENCRYPTION=true