【问题标题】:publish jax-ws service on public ip在公共 ip 上发布 jax-ws 服务
【发布时间】:2011-11-29 01:27:18
【问题描述】:

我有一个简单的 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:未解析的地址

任何想法解决问题和/或如何做我需要的?

提前致谢

【问题讨论】:

    标签: web-services ip jax-ws endpoint


    【解决方案1】:

    这似乎与路由和防火墙有关,而不是网络服务发布等。忽略网络服务方面,当您在浏览器中使用它时,您甚至可以访问您的服务器:

    http://myname.no-ip.info:8080/
    

    ?

    应该和

    一样
    http://localhost:8080/
    

    如果不是,那么您可能需要检查 DNS/路由/防火墙。有帮助的诊断有: 1) 您正在测试的机器能否解析 DNS 名称 mynam.no-ip.info? nslookup,ping,traceroute/tracert 2) 是否有防火墙阻止端口 8080 到达本地主机?如果从 Internet 到您的主机的路由遇到防火墙(它会),该防火墙将不得不转发请求。

    祝你好运。

    【讨论】:

    • 谢谢,在另一个网络的另一台电脑上解决了。所以这是路由器/防火墙/uac问题,WS没问题。
    猜你喜欢
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    相关资源
    最近更新 更多