javax.xml.ws.WebServiceException:无法发送消息| java.net.ConnectException:调用xxx的ConnectException:连接超时:connect

问题描述

一个提供程序公开了一个Web服务,我从WSDL创建了一个Java客户端,并在cacerts和keystore中配置了所有证书以确保安全,在我的计算机上一切正常,客户要求在其Windows机器之一中部署客户端,但是我无法运行它,因为运行代码时出现错误在这台机器上,有活动的防火墙,forescout,卡巴斯基防病毒软件和网络代理,因此我认为其中一些可能会阻止连接,甚至ping端点也会失败(在我的计算机上,我没有任何这些工具,只有Internet连接) 令人惊讶的是,我可以在他们的计算机上从SOAPUI调用服务,这让我有些困惑。我想问问是否有人可能会出问题。.预先感谢。

2020-08-30 13:18:27 DEBUG (PhaseInterceptorChain.java:305) - Invoking handleMessage on interceptor org.apache.cxf.ws.policy.PolicyVerificationOutInterceptor@61884cb1
2020-08-30 13:18:27 DEBUG (PolicyVerificationOutInterceptor.java:78) - Verified policies for outbound message.
2020-08-30 13:18:27 DEBUG (PhaseInterceptorChain.java:305) - Invoking handleMessage on interceptor org.apache.cxf.binding.soap.interceptor.soapOutInterceptor$SoapOutEndingInterceptor@423e4cbb
2020-08-30 13:18:27 DEBUG (PhaseInterceptorChain.java:305) - Invoking handleMessage on interceptor org.apache.cxf.binding.soap.saaj.saajOutInterceptor$saajOutEndingInterceptor@545de5a4
2020-08-30 13:18:27 DEBUG (PhaseInterceptorChain.java:305) - Invoking handleMessage on interceptor org.apache.cxf.interceptor.StaxOutEndingInterceptor@acb0951
2020-08-30 13:18:27 DEBUG (PhaseInterceptorChain.java:305) - Invoking handleMessage on interceptor org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor@1d7f7be7
2020-08-30 13:18:27 DEBUG (Headers.java:320) - Accept: */*
2020-08-30 13:18:27 DEBUG (Headers.java:320) - Authorization: ***
2020-08-30 13:18:27 DEBUG (Headers.java:320) - Connection: Keep-Alive
2020-08-30 13:18:27 DEBUG (HTTPConduit.java:1814) - No Trust Decider for Conduit '{xxx}'. An affirmative Trust Decision is assumed.
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor@1d7f7be7
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.interceptor.StaxOutEndingInterceptor@acb0951
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.binding.soap.saaj.saajOutInterceptor$saajOutEndingInterceptor@545de5a4
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.binding.soap.interceptor.soapOutInterceptor$SoapOutEndingInterceptor@423e4cbb
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.ws.policy.PolicyVerificationOutInterceptor@61884cb1
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JOutInterceptor$PolicyBasedWSS4JOutInterceptorInternal@3faf2e7d
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.binding.soap.interceptor.RPCOutInterceptor@3cfdd820
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.binding.soap.interceptor.soapOutInterceptor@e25951c
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JOutInterceptor@2e11485
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.interceptor.StaxOutInterceptor@6b0d80ed
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JStaxOutInterceptor@60dce7ea
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.interceptor.AttachmentOutInterceptor@452e19ca
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.interceptor.MessageSenderInterceptor@64ec96c6
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.binding.soap.interceptor.soapPreProtocolOutInterceptor@928763c
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.ws.security.policy.interceptors.SecurityVerificationOutInterceptor@fd8294b
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.binding.soap.interceptor.soapHeaderOutFilterInterceptor@6f8e8894
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.jaxws.interceptors.WrapperClassOutInterceptor@456d6c1e
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.jaxws.interceptors.SwAOutInterceptor@77659b30
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.jaxws.interceptors.HolderOutInterceptor@1e13529a
2020-08-30 13:18:48 DEBUG (PhaseInterceptorChain.java:496) - Invoking handleFault on interceptor org.apache.cxf.ws.policy.PolicyOutInterceptor@1b410b60
2020-08-30 13:18:48  WARN (LogUtils.java:475) - Interceptor for {xxx} has thrown exception,unwinding Now
org.apache.cxf.interceptor.Fault: Could not send Message.
    at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:67)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:530)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:441)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:356)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:314)
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:140)
    at com.sun.proxy.$Proxy35.deleteBook(UnkNown Source)
    at it.main.MyMain.main(MyMain.java:65)
Caused by: java.net.ConnectException: ConnectException invoking xxx: Connection timed out: connect
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(UnkNown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(UnkNown Source)
    at java.lang.reflect.Constructor.newInstance(UnkNown Source)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1400)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1384)
    at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
    at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:671)
    at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:63)
    ... 9 more
Caused by: java.net.ConnectException: Connection timed out: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(UnkNown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(UnkNown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(UnkNown Source)
    at java.net.AbstractPlainSocketImpl.connect(UnkNown Source)
    at java.net.PlainSocketImpl.connect(UnkNown Source)
    at java.net.socksSocketImpl.connect(UnkNown Source)
    at java.net.socket.connect(UnkNown Source)
    at sun.net.NetworkClient.doConnect(UnkNown Source)
    at sun.net.www.http.HttpClient.openServer(UnkNown Source)
    at sun.net.www.http.HttpClient.openServer(UnkNown Source)
    at sun.net.www.protocol.https.HttpsClient.<init>(UnkNown Source)
    at sun.net.www.protocol.https.HttpsClient.New(UnkNown Source)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(UnkNown Source)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(UnkNown Source)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(UnkNown Source)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(UnkNown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getoutputStream0(UnkNown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getoutputStream(UnkNown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getoutputStream(UnkNown Source)
    at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.setupWrappedStream(URLConnectionHTTPConduit.java:274)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1343)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1304)
    at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.onFirstWrite(URLConnectionHTTPConduit.java:307)
    at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:47)
    at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69)
    at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1356)
    ... 12 more
2020-08-30 13:18:48 ERROR (MyMain.java:77) - javax.xml.ws.WebServiceException: Could not send Message.

解决方法

我也遇到了同样的问题。在花费大量时间并在谷歌中搜索错误之后。我终于找到了一个解决方案,它对我有用。我希望它也适用于您。

我能够通过编辑 standalone-full.xml 来解决它。

{code:xml}

<modify-wsdl-address>true</modify-wsdl-address>

<wsdl-host>your server ip</wsdl-host>

<endpoint-config name="Standard-Endpoint-Config"/>

<endpoint-config name="Recording-Endpoint-Config">

    <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">

        <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>

    </pre-handler-chain>

</endpoint-config>

{code:xml}

修改后,我重新启动了我的服务器和使用我的 ip 生成的 WSDL 文件,如下所示

{code:xml}

<wsdl:service name="AppointmentFacadeService">

<wsdl:port binding="tns:AppointmentFacadeServiceSoapBinding" name="AppointmentFacadePort">

    <soap:address location="http://server_ip:port/wsServe/AppointmentFacade"/>

</wsdl:port>

</wsdl:service>

{code:xml}

按照以下链接参考。

https://developer.jboss.org/thread/204961