1

我正在尝试安装和运行 Java EE 6 教程示例。在这种特殊情况下,杜克的森林案例研究示例。第一个安装步骤“创建 JDBC 领域并填充数据库”没有问题,显然 JavaDB 已创建并填充。但在第二步中,我在尝试连接到 JavaDB 时遇到以下错误:“创建数据库时发生错误:java.sql.SqlNonTransientConnectionException:检测到通信错误:软件导致连接中止:recv failed..”

奇怪的是,虽然连接 JavaDB 似乎不起作用,但使用“ant”和教程脚本创建 db 似乎有效。此外,启动 JavaDB 服务器似乎也能正常工作,显示一条消息,说明它已准备好并正在侦听端口 1527。

在获取 java.sql.SqlNonTransientConnectionException中提出了类似的问题。

我正在运行 Windows XP、NetBeans 8.1、JDK 1.7.0_60。

4

1 回答 1

0

最后,我发现了问题。这有点棘手,尽管现在看起来很明显。我使用两种不同的网络配置进行浏览,一种使用 Socks v5 代理(在 Chrome 中),另一种没有代理(在 Firefox 中)。Chrome 中的一个是 Windows XP 默认的,现在我知道 Netbeans 使用它。

当我执行“ant”脚本(教程中的第 1 步)时,我使用了一个命令行窗口,它似乎没有使用默认的 Windows 网络配置。所以我没有错误。但是,当我尝试从 Netbeans 连接时,出现了错误。

现在,我已经消除了默认网络配置中的代理,我重新启动了 Netbeans,它就可以工作了!

注意:之后,我在 NetBeans 选项对话框中找到了“代理设置”。默认情况下,NetBeans 设置“使用系统代理设置”。所以,我以为改成“无代理”,一切都会好起来的,但没有。JavaDB 连接有效,但是当我尝试启动 Glassfish 时,发现它使用代理配置进行网络连接。我还在 NetBeans Glassfish 服务器配置对话框(Java 选项卡)中找到了一个名为“使用 IDE 的代理设置”的检查,似乎与这个问题有关,但经过多次测试,我发现它不起作用。

于 2016-01-26T09:32:07.217 回答