Jax-ws java.net.ConnectException:连接被拒绝

时间:2011-05-12 17:06:39

标签: networking jax-ws ip-address glassfish-3 java-metro-framework

我遇到了一个奇怪的网络问题,使用JAX-WS(Metro)从运行在tomcat上的java客户端连接到glassfish上运行的Web服务。这是场景......

  • 两台服务器都在我的本地计算机上运行。
  • 如果我将客户端配置为使用127.0.0.1连接到WS端点,则请求正常。
  • 如果我使用我的IP地址配置客户端连接到WS端点,我立即得到java.net.ConnectException:连接被拒绝。如果我使用我的主机名,也会发生同样的事情。

奇怪的是,如果我从SoapUI点击端点,如果使用127.0.0.1,我的IP地址或我的主机名,请求就可以正常工作。

这是我得到的例外......

java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.Socket.connect(Socket.java:529)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:120)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:256)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:184)
at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:137)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482)
at com.sun.xml.ws.client.Stub.process(Stub.java:323)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:161)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:113)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:93)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:144)
at $Proxy51.listAttributeTypes(Unknown Source)
at com.myapp.store.service.client.JaxWsProductAdminServiceClient.listAttributeTypes(JaxWsProductAdminServiceClient.java:71)
at com.myapp.admintool.ProductAttributeController$_closure1.doCall(ProductAttributeController.groovy:26)
at com.myapp.admintool.ProductAttributeController$_closure1.doCall(ProductAttributeController.groovy)
at java.lang.Thread.run(Thread.java:680)

任何想法或指示赞赏!

2 个答案:

答案 0 :(得分:1)

我在Linux机器上运行JAX-WS Web服务时看到了类似的问题,/etc/hosts中的条目将计算机的主机名指向localhost。

这似乎导致JAX-WS Web服务在http://localhost:port/endpoint上启动,因此只能从该计算机访问。

答案 1 :(得分:0)

'拒绝连接'表示没有任何内容在您指定的IP:端口上侦听。其中一个或两个都是错的。