HTTP传输错误:从Glassfish访问Web服务时连接被拒绝

时间:2015-10-10 00:24:01

标签: java jax-ws glassfish-4

我在Glassfish 4.1服务器上运行了两个应用程序:一个提供jax-ws webservice,另一个提供使用它。只要我在客户端应用中使用localhost127.0.0.1作为端点,一切都很好。但是当我尝试在远程计算机上安装webservice并访问它时,我在客户端应用程序中收到错误: com.sun.xml.ws.client.ClientTransportException: HTTP transport error: java.net.ConnectException: Connection refused: connect

但是,我可以从浏览器/ SoapUI / Netbeans访问远程wsdl。 wsdl的服务端口绑定部分包含有效的host:port。

我试图做的事情:

  • 使用

    在客户端应用中设置端点
    (BindingProvider)port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL);
    
  • 重做jax-ws从远程机器导入,所以现在即使在本地wsdl我也有远程主机名;
  • 将注释注释更改为@WebServiceRef(wsdlLocation = "http://remotehost:remoteport/svc/port?wsdl")
  • 检查Glassfish侦听器是否已配置为IP 0.0.0.0

到目前为止,没有任何帮助。此外,当我只是将端点从localhost更改为实际主机名或此机器的IP时,我遇到了相同的行为。

这里是异常日志(部分):

com.sun.xml.ws.client.ClientTransportException: HTTP transport error: java.net.ConnectException: Connection refused: connect
at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:131)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:223)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:145)
at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:139)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:1019)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877)
at com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:136)
at com.sun.enterprise.security.webservices.ClientSecurityPipe.processSecureRequest(ClientSecurityPipe.java:198)
at com.sun.enterprise.security.webservices.ClientSecurityPipe.process(ClientSecurityPipe.java:186)
at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:119)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:1019)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877)
at com.sun.xml.ws.client.Stub.process(Stub.java:463)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:191)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:92)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:161)
at com.sun.proxy.$Proxy386.processRequest(Unknown Source)

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

我的错,原来这个问题是由glassfish JVM选项中的错误代理设置引起的。