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上啓動,因此只能從該機器訪問。

相關問題