我使用javax.xml.ws.Endpoint:发布服务
Endpoint.publish("http://localhost:8080/myService", new MyServicePortImpl());
为了测试该服务,我将通过curl发送一个ping XML。当我在本地运行它时,这是正确的,但当我尝试从另一台机器卷曲时失败了。
curl: (7) Failed to connect to [MY_SERVER] port 8080: Timed out
这让我相信8080端口有问题。当我在RHEL机器上运行ss -lntu
时,我看到:
tcp LISTEN 0 50 ::ffff:127.0.0.1:8080 :::*
这看起来不对。我想应该是:::8080
之类的。为什么端口出了问题,我该如何修复?
通过在iptables中添加一条规则来允许端口8080的所有入站流量,从而解决了超时问题。此后,操作失败;连接被拒绝"要使服务侦听所有IP地址,端点需要如下所示:
Endpoint.publish("http://0.0.0.0:8080/myService", new MyServicePortImpl());
在此处找到解决方案。