完整报错如下
Caused by: com.ibm.db2.jcc.am.SqlSyntaxErrorException: [jcc][t4][10107][11233][3.64.82] 不允许密码长度为 0。 ERRORCODE=-4461, SQLSTATE=42815
at com.ibm.db2.jcc.am.bd.a(bd.java:679)
at com.ibm.db2.jcc.am.bd.a(bd.java:60)
at com.ibm.db2.jcc.am.bd.a(bd.java:103)
at com.ibm.db2.jcc.t4.b.e(b.java:2294)
at com.ibm.db2.jcc.t4.b.a(b.java:2312)
at com.ibm.db2.jcc.t4.b.b(b.java:787)
at com.ibm.db2.jcc.t4.b.a(b.java:760)
at com.ibm.db2.jcc.t4.b.a(b.java:421)
at com.ibm.db2.jcc.t4.b.a(b.java:396)
at com.ibm.db2.jcc.t4.b.<init>(b.java:334)
at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:232)
at com.ibm.db2.jcc.DB2SimpleDataSource.getConnection(DB2SimpleDataSource.java:198)
at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:475)
at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:116)
at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
... 45 more
产生原因:进行了数据库连接加密
在applicationcontext-config.xml文件中找到了相应的配置
<bean class="com.joyintech.tisaccel.base.EncryptPropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
<value>classpath:salesysconfig.properties</value>
</list>
</property>
<!-- 需要加密的配置项-->
<property name="encryptPropNames">
<list>
<value>jdbc.password</value>
</list>
</property>
</bean>
解决的方法很简单,把加密的字段注释掉就行了
<!-- <value>jdbc.password</value> -->
进一步探索的话可以进入EncryptPropertyPlaceholderConfigurer类中查看加密方式,不注释字段,根据加密方式自行加密字段也可以完成.