Netbeans 7.3.1 无法建立与 jdbc:derby 的连接

问题描述 投票:0回答:2

最近我正在使用 Java EE 开发这个小项目,我需要使用 derby 数据库,但是每次我进入服务->数据库并尝试连接到我的 jdbc:derby 时,我都会收到此错误:

无法连接。无法使用 org.apache.derby.jdbc.ClientDriver 建立与 jdbc:derby://localhost:1527//sample 的连接(java.netConnectException:在端口 1527 上连接到服务器本地主机时出错,并显示消息连接被拒绝:连接。)。

这个例外:

Wed Oct 29 15:05:26 EET 2014 : access denied ("java.net.SocketPermission" "localhost:1527" "listen,resolve")
java.security.AccessControlException: access denied ("java.net.SocketPermission" "localhost:1527" "listen,resolve")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:457)
    at java.security.AccessController.checkPermission(AccessController.java:884)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at java.lang.SecurityManager.checkListen(SecurityManager.java:1131)
    at java.net.ServerSocket.bind(ServerSocket.java:374)
    at java.net.ServerSocket.<init>(ServerSocket.java:237)
    at javax.net.DefaultServerSocketFactory.createServerSocket(ServerSocketFactory.java:231)
    at org.apache.derby.impl.drda.NetworkServerControlImpl.createServerSocket(Unknown Source)
    at org.apache.derby.impl.drda.NetworkServerControlImpl.access$000(Unknown Source)
    at org.apache.derby.impl.drda.NetworkServerControlImpl$1.run(Unknown Source)
    at java.security.AccessControWed Oct 29 15:05:26 EET 2014 : access denied ("java.net.SocketPermission" "localhost:1527" "listen,resolve")
java.security.AccessControlException: access denied ("java.net.SocketPermission" "localhost:1527" "listen,resolve")
    at java.security.AccessContrller.doPrivileged(Native Method)
    at org.apache.derby.impl.drda.NetworkServerControlImpl.blockingStart(Unknown Source)
    at org.apache.derby.impl.drda.NetworkServerControlImpl.executeWork(Unknown Source)
    at org.apache.derby.drda.NetworkServerControl.maiolContext.checkPermission(AccessControlContext.java:457)
    at java.security.AccessController.checkPermission(AccessController.java:884)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at java.lang.SecurityManager.checkListen(SecurityManager.java:1131)
    at java.net.ServerSocket.bind(ServerSocket.java:374)
    at java.net.ServerSocket.<init>(ServerSocket.java:237)
    at javax.net.DefaultServerSocketFactory.createServerSocket(ServerSocketFactory.java:231)
    at org.apache.derby.impl.drda.NetworkServerControlImpl.createServerSocket(Unknown Source)
    at org.apache.derby.impl.drda.NetworkServerControlImpl.access$000(Unknown Source)
    at org.apache.derby.impl.drda.NetworkServerControlImpl$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.derby.impl.drda.NetworkServerControlImpl.blockingStart(Unknown Source)
    at org.apache.derby.impl.drda.NetworkServerControlImpl.executeWork(Unknown Source)
    at org.apache.derby.drda.NetworkServerControl.main(Unknown Source)
n(Unknown Source)

有什么解决办法吗?

java netbeans derby
2个回答
0
投票

您是否已经尝试过此处的提示http://wiki.netbeans.org/JavaDB_grant_permissions

JDK 7u51 附带了一些安全改进,这些改进导致在此 Java 版本上启动 Java DB 时出现问题。

当您尝试从 NetBeans 启动数据库时,您可能会收到异常:

 java.security.AccessControlException: access denied ("java.net.SocketPermission" "localhost:1527" "listen,resolve")

开始使用脚本 /db/bin/startNetworkServer 时会遇到同样的异常

因为在 NetBeans 端没有合适的方法来修复它,这应该在 Java DB 端修复。

有几种方法可以解决这个问题。我只会提到最简单的方法。您必须从命令行手动启动数据库。

使用 -noSecurityManager 参数启动 Java DB。

  <JDK 7u51 location>/db/bin/startNetworkServer -noSecurityManager

0
投票

您需要在项目属性中添加起始页。 打开项目属性。然后选择选项卡运行。然后将您的项目起始页添加到相对 URL 文本框中。我的是“/index.jsp”。

抱歉,如果我的英语语法有一些错误。

© www.soinside.com 2019 - 2024. All rights reserved.