0

我遇到了一个奇怪的网络问题,它使用JAX-WS(Metro)在tomcat上运行的java客户端上连接到运行在glassfish上的Web服务。这里是场景...Jax-ws java.net.ConnectException:连接被拒绝

  • 这两台服务器都在我的本地机器上运行。
  • 如果我将客户端配置为使用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) 

任何想法或指针赞赏!

回答

0

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

+0

欢呼你的评论。我可以使用IP:端口详细信息连接到端点。我从SOAP UI提供的端口详细信息,但我非常确定它们是正确的 - 只有在使用从WSDL生成的Java客户端进行连接时才会出现问题。 – 2011-05-13 08:35:13

+0

@Jay Shark:路径中是否有防火墙出现故障?如果是这样,则未配置所需的ip:port open。 – EJP 2011-05-13 09:51:44

+0

@EJP我也有这个问题...我该怎么办? – AknKplnoglu 2015-09-15 13:42:39

0

我在运行Linux操作系统上的JAX-WS webservice时发现了一个类似的问题,其中一个条目/etc/hosts指向计算机的主机名为localhost。

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

相关问题