带有§符号的EclipseLink密码

时间:2014-10-07 14:01:39

标签: java jpa eclipselink

我的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

1 个答案:

答案 0 :(得分:0)

我想我明白了。问题实际上与密码的加密/解密有关。但这不是我想到的EclipseLink问题。 密码已经加密并解密,因为它被提供给EclipseLink。所以错误位于我的代码中的某个位置。原来,解密用“?”代替'§'符号不允许的符号。