0

我想运行一个 cyc (openencyc) Java 类,但是当我运行这个类时,我收到一个错误,提示网络无法访问。我正在开发 NetBeans 7.0 和 opencyc 2.0 win 32 版本。我正在使用 localhost (127.0.0.1) 进行测试。错误如下。

Network is unreachable: connect
java.net.SocketException: Network is unreachable: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at org.opencyc.api.CycConnection.initializeApiConnections(CycConnection.java:223)
at org.opencyc.api.CycConnection.<init>(CycConnection.java:199)
at org.opencyc.api.CycAccess.<init>(CycAccess.java:121)
at org.opencyc.api.CycAccess.<init>(CycAccess.java:61)
at org.opencyc.api.ApiDemo.<init>(ApiDemo.java:50)
at org.opencyc.api.ApiDemo.main(ApiDemo.java:147)
Exception in thread "main" java.lang.NullPointerException
at org.opencyc.api.ApiDemo.<init>(ApiDemo.java:56)
at org.opencyc.api.ApiDemo.main(ApiDemo.java:147)
Interruption while waiting Cyc connection establishment, closing sockets
Exception in thread "Thread-1" java.lang.NullPointerException
at org.opencyc.api.CycConnection$TaskProcessorBinaryResponseHandler.access$002(CycConnection.java:988)
at org.opencyc.api.CycConnection.close(CycConnection.java:268)
at org.opencyc.api.CycConnection$ConnectionTimer.run(CycConnection.java:1351)

为什么会这样?如何连接到 cyc?

4

3 回答 3

3

问题是您的网络设置不允许您连接到这台机器。这不是 Java 问题本身。

尝试

ping {hostname}

在此工作之前,您无法在 java 中做任何事情来解决此问题。

于 2012-04-17T12:14:11.337 回答
0

如果您有与我相同的版本,它会尝试使用定义的主机名和端口建立与 Cyc 映像的连接

CycConnection.DEFAULT_HOSTNAME
CycConnection.DEFAULT_BASE_PORT

您可以通过评估 Cyc 图像中的以下内容来找到要使用的正确值:

(获取机器名称)
*BASE-TCP-PORT*

希望这对你有用。

于 2012-04-18T13:59:46.297 回答
0

我团队的一个开发人员今天遇到了这个问题,只有他们的机器在团队中的许多人中看到了这个问题。

通过大量调试,我们最终发现localhost由于某种原因无法解决。它可以在某些 JVM 上下文中工作而在其他上下文中失败,因此它完全不一致。

替换localhost为明确127.0.0.1修复了该问题。我的预感是本地网络和 IPv6 可能有所不同,但我们仍然不明白为什么这是修复。

于 2021-12-16T20:02:24.310 回答