无法获得 JDBC 连接;嵌套异常是 java.sql.SQLException:JZ002:密码 属性 '' 太长。最大长度为 30

Could not get JDBC Connection; nested exception is java.sql.SQLException: JZ002: Password property '' too long. Maximum length is 30

我在使用 JDBCtemplate 创建连接时遇到以下错误。

org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: JZ002: Password property '' too long. Maximum length is 30.
Caused by: java.sql.SQLException: JZ002: Password property '' too long. Maximum length is 30.
    at com.sybase.jdbc3.jdbc.ErrorMessage.raiseError(ErrorMessage.java:559)
    at com.sybase.jdbc3.tds.LoginToken.<init>(LoginToken.java:161)
    at com.sybase.jdbc3.tds.Tds.doLogin(Tds.java:542)
    at com.sybase.jdbc3.tds.Tds.login(Tds.java:484)
    at com.sybase.jdbc3.jdbc.SybConnection.tryLogin(SybConnection.java:247)
    at com.sybase.jdbc3.jdbc.SybConnection.regularConnect(SybConnection.java:223)
    at com.sybase.jdbc3.jdbc.SybConnection.<init>(SybConnection.java:198)
    at com.sybase.jdbc3.jdbc.SybConnection.<init>(SybConnection.java:132)
    at com.sybase.jdbc3.jdbc.SybDriver.connect(SybDriver.java:179)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:208)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:291)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:277)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:259)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:240)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:328)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:404)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:412)
    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:420)
    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:425)
    at org.springframework.jdbc.core.JdbcTemplate.queryForInt(JdbcTemplate.java:434)

我的spring.xml文件

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
        <property name="driverClassName" value="${driver}" />
        <property name="url" value="${url}" />
        <property name="username" value="${userName}" />
        <property name="password" value="${passwd}" />
    </bean>

我无法更改我的密码,因为这是 UAT 环境。任何人都可以在这里建议任何解决方案。我正在使用 sybase 作为数据库

这是 Sybase 的限制 - 密码不能超过 30 个字符。 如果您尝试使用更长的密码,它 trim 到前 30 个字符。
参见:sybase docs for maximum password length

如果密码是外部创建的,那么我想你也可以这样做,trim 长度为 30...