【发布时间】:2012-05-16 07:11:29
【问题描述】:
我有一个游戏应用程序连接到 1.2.3.4 的数据库,但出于某种原因 Play! (以及其他 java 应用程序)无法连接到它。
我确实尝试编辑主机文件并为 IP 设置一个名称,例如app01 1.2.3.4,但它仅适用于托管数据库的机器,不适用于外部机器。我可以确认在 iptables 中打开了正确的端口,我也尝试过重新启动它。
如果我从同一个盒子在 1.2.3.4 的 4567 端口 ping postgres,它可以工作。但是在我的 java 应用程序中设置相同的 IP 地址失败。怎么了?是权限问题还是 iptables 问题?谢谢。
堆栈跟踪:
Caused by: java.net.NoRouteToHostException: No route to host
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:327)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:193)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at java.net.Socket.connect(Socket.java:495)
at java.net.Socket.<init>(Socket.java:392)
at java.net.Socket.<init>(Socket.java:206)
at org.postgresql.core.PGStream.<init>(PGStream.java:62)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:76)
... 35 more
【问题讨论】:
-
你真的有IP 1.2.3.4吗?你电脑的IP是多少??我认为,错误消息说everythink...您不在同一个子网中,例如 1.2.3.4 ip
-
哈哈,实际上是 72.15.xxx.xx 我不想在这里发布真实 IP :)
-
写一些你自己写的代码。
-
这是内置的 Play! JDBC Postgres 驱动程序和 RubyRep Postgres 驱动程序,不是我的代码 :)
标签: java ping hosts-file