我有一个简单的jax-ws web服务,在localhost上可以很好地与客户端一起工作,但现在我想在公共IP上发布Web服务,所以客户端可以通过wan网络而不是lan网络与它进行交互。 我签到了no-ip dns服务提供商,并将我的主机定义为“myname.no-ip.info”。
在我的代码中,我以这种方式启动服务:
Endpoint.publish("http://localhost:8080/baseStationProvider", new BaseStationProvider());
并且http://myname.no-ip.info:8080/baseStationProvider@wsdl处的浏览器未显示wsdl。
如果我以这种方式启动服务:
Endpoint.publish("http://myname.no-ip.info/baseStationProvider", new BaseStationProvider());
编译代码,它引发了这个异常: 服务器运行时错误:java.net.SocketException:未解析的地址
对问题和/或如何做我需要的任何想法?
提前致谢
答案 0 :(得分:0)
这似乎与路由和防火墙相关,而不是Web服务发布等。忽略Web服务方面,您甚至可以在浏览器中使用它时访问您的服务器:
http://myname.no-ip.info:8080/
哪个应该与
相同http://localhost:8080/
如果没有,那么您可能需要检查DNS /路由/防火墙。有助于实现的诊断:
1)您正在测试的机器可以解析DNS名称mynam.no-ip.info吗? nslookup
,ping,traceroute / tracert
2)是否有防火墙阻止端口8080到达本地主机?如果从互联网到您的主机的路由遇到防火墙(它将会)防火墙必须转发请求。