我不知道为什么会这样? "java.nio.channels.UnresolvedAddressException"
I don't know why occurred this? "java.nio.channels.UnresolvedAddressException"
我制作的程序具有使用 Netty 将消息发送到 FCM 服务器的功能。
我在Windows 7.
完成了测试
效果很好。
但 solaris 没有 运行 这个。
我在 solaris 中得到一个异常代码。
[ClientHandler.exceptionCaught] Unexpected exception from downstream.java.nio.channels.UnresolvedAddressException
此异常错误发生在
之后
"[ClientHandler.channelOpen]"
然后是运行
"[ClientHandler.channelClosed]"
所以,我确实尝试在立即“[ClientHandler.channelOpen]”之后向 FCM 服务器写入消息。
从 FCM 服务器发送的消息。
并遇到另一个异常错误。
"java.nio.channels.NotYetConnectedException"
即知上述问题出现错误
我不知道为什么会发生 "UnresolvedAddressException"。
我认为是因为 Solaris 防火墙的问题。
如何处理这个问题?
添加到..
Ping 测试结果
ping 64.233.187.188
64.233.187.188 is alive
注意 - 此 IP 是通过使用
获得的
String ip = "fcm-xmpp.googleapis.com";
int port = 5236;
new InetSocketAddress (ip, port) .getAddress () getHostAddress ()
在 java.
随着我们的推进,我会改进这个答案。
您的 Solaris 系统似乎配置有误。在主机名查找方面配置错误。
让我们知道您的 Solaris 版本。做 cat /etc/release
和
post 输出。
在 Solaris 上有一个名为 Solaris 名称服务守护程序的野兽
缓存名称信息。其他 OS 也有类似的概念。
Solaris 中的所有相关系统调用都会向此守护进程询问名称
信息,但是 nslookup
工具会绕过这个并询问
直接从 DNS 服务器。这就是为什么你可以成功
nslookup
,而名称查找通常不起作用。底线:
nslookup
有时候不是你想做的测试。使用 getent
命令,如 getent hosts fcm-xmpp.googleapis.com
.
Andrew Henley 的评论很到位。您应该执行 telnet
测试。
它提供了有价值的信息。这是众所周知的测试方法
连接性,它应该成为任何 IT 人员工具箱的一部分,无论
恕我直言,您是开发人员或系统管理员。 (Windows 人们通常会
不知道 'telnet test' 主要是因为微软已经决定
telnet 客户端不应再默认安装在
Windows)
我制作的程序具有使用 Netty 将消息发送到 FCM 服务器的功能。
我在Windows 7.
完成了测试效果很好。
但 solaris 没有 运行 这个。
我在 solaris 中得到一个异常代码。
[ClientHandler.exceptionCaught] Unexpected exception from downstream.java.nio.channels.UnresolvedAddressException
此异常错误发生在
之后"[ClientHandler.channelOpen]"
然后是运行
"[ClientHandler.channelClosed]"
所以,我确实尝试在立即“[ClientHandler.channelOpen]”之后向 FCM 服务器写入消息。
从 FCM 服务器发送的消息。
并遇到另一个异常错误。
"java.nio.channels.NotYetConnectedException"
即知上述问题出现错误
我不知道为什么会发生 "UnresolvedAddressException"。
我认为是因为 Solaris 防火墙的问题。
如何处理这个问题?
添加到.. Ping 测试结果
ping 64.233.187.188
64.233.187.188 is alive
注意 - 此 IP 是通过使用
获得的String ip = "fcm-xmpp.googleapis.com";
int port = 5236;
new InetSocketAddress (ip, port) .getAddress () getHostAddress ()
在 java.
随着我们的推进,我会改进这个答案。
您的 Solaris 系统似乎配置有误。在主机名查找方面配置错误。
让我们知道您的 Solaris 版本。做
cat /etc/release
和 post 输出。在 Solaris 上有一个名为 Solaris 名称服务守护程序的野兽 缓存名称信息。其他 OS 也有类似的概念。 Solaris 中的所有相关系统调用都会向此守护进程询问名称 信息,但是
nslookup
工具会绕过这个并询问 直接从 DNS 服务器。这就是为什么你可以成功nslookup
,而名称查找通常不起作用。底线:nslookup
有时候不是你想做的测试。使用getent
命令,如getent hosts fcm-xmpp.googleapis.com
.Andrew Henley 的评论很到位。您应该执行
telnet
测试。 它提供了有价值的信息。这是众所周知的测试方法 连接性,它应该成为任何 IT 人员工具箱的一部分,无论 恕我直言,您是开发人员或系统管理员。 (Windows 人们通常会 不知道 'telnet test' 主要是因为微软已经决定 telnet 客户端不应再默认安装在 Windows)