我的Eclipse与数据库连接有问题。当我使用包含§符号的密码时,我得到一个SQLException。没有EclipseLink就没有问题。
我尝试了没有EclipseLink的其他特殊角色:§和$是唯一合法的特殊角色。包含$符号的密码也适用于EclipseLink,而包含§符号的密码则不然。
我的猜测是EclipseLink用代码替换§,导致下面的错误。有人已经处理过这个吗?有办法解决吗?
例外:
内部异常:java.sql.SQLException:应用程序服务器拒绝连接。 (用户标识或密码包含无效的字符。) 错误代码:-99999
数据库:AS400 iSeries
JPA提供者:EclipseLink 2.4.1
持久性XML:
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="unit1" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<mapping-file>META-INF/bvlistenermapping.xml</mapping-file>
<class>...</class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
<validation-mode>NONE</validation-mode>
<properties>
<property name="eclipselink.target-database"
value="de.meyerwerft.common.db.helper.DB2UDBiSeriesPlatform" />
<property name="javax.persistence.jdbc.driver" value="com.ibm.as400.access.AS400JDBCDriver" />
<property name="javax.persistence.jdbc.url"
value="jdbc:as400://###;prompt=false;naming=sql;errors=full;date format=eur;time format=eur;decimal separator=.;blocksize=512;translate binary=true;" />
<property name="eclipselink.logging.level" value="FINEST" />
<property name="eclipselink.logging.logger"
value="###" />
</properties>
</persistence-unit>
提前感谢任何有用的提示。
Greetz Malte
答案 0 :(得分:0)
我想我明白了。问题实际上与密码的加密/解密有关。但这不是我想到的EclipseLink问题。 密码已经加密并解密,因为它被提供给EclipseLink。所以错误位于我的代码中的某个位置。原来,解密用“?”代替'§'符号不允许的符号。