6

我正在使用带有 JSF、EJB 和 JPA 的 Netbeans 创建一个登录界面。当我尝试部署项目时,它会引发以下异常:

Internal Exception: java.sql.SQLException: 
Error in allocating a connection. Cause: Connection could not be allocated because: User id length (0) is outside the range of 1 to 255.
Error Code: 0. Please see server.log for more details.
C:\Users\Dell\Desktop\assignmenttask2\nbproject\build-impl.xml:1033: The module has not been deployed.
See the server log for details.

这是如何引起的,我该如何解决?

4

3 回答 3

7

您需要在 persistence.xml 中进行配置。

<properties>
  <property name="javax.persistence.jdbc.user" value="APP"/>
  <property name="javax.persistence.jdbc.password" value="APP"/>
 </properties>

看这里

于 2013-03-15T12:22:59.603 回答
4

@PSR 答案对我有用,这里有更多内容:

netbeans(在 7.4 build 201310111528 上转载)JPA 的持久性单元创建向导不强制提供用户名密码。
问题是它不适用于 Java DB (derby)。更大的问题是您会收到有关用户 ID 长度的尴尬错误,这是另一个真正无用的错误消息。

因此,要解决这个问题,要么使用用户名密码重新创建持久性单元 ( persistence.xml<properites> ),要么在 xml下手动添加两行:

<properties>
  <property name="javax.persistence.jdbc.user" value="APP"/>
  <property name="javax.persistence.jdbc.password" value="APP"/>
 </properties>

高温高压

于 2014-02-08T10:39:19.740 回答
0

问题往往是因为密码是空字符串,所以要解决密码的值属性中必须提到'()',例如如果用户是APP并且没有设置密码,则配置将会:

 <properties>
  <property name="javax.persistence.jdbc.user" value="APP"/>
  <property name="javax.persistence.jdbc.password" value="()"/>
 </properties>
于 2020-11-24T00:28:36.090 回答