org.apache.cxf.interceptor.Fault: Could not send Message

发布时间 2023-09-22 11:09:25作者: iamwhy

// cxf调用方法
public
String callWebService(String WSDL, String medthod, String inXML) { JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance(); Client client = clientFactory.createClient(WSDL);

try { Object[] result = client.invoke(medthod, inXML); System.out.println("HzInfomationPlatform_yyh.callWebService().result出参:-------->>"+result[0]); return (String) result[0]; } catch (Exception e) { e.printStackTrace(); return "fail"; } }

 

异常:
1
org.apache.cxf.interceptor.Fault: Could not send Message. 2 at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64) 3 at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243) 4 at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:487) 5 at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313) 6 at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265) 7 at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:285) 8 at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:271) 9 at com.cpinfo.his.web.cxf.imp.HzInfomationPlatform_yyh.callWebService(HzInfomationPlatform_yyh.java:307) 10 at com.cpinfo.his.web.cxf.imp.HzInfomationPlatform_yyh.callbus02(HzInfomationPlatform_yyh.java:228) 11 at com.cpinfo.his.web.healthManagement.FootborneDiseaseController.reportBus(FootborneDiseaseController.java:975) 12 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 13 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 14 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 15 at java.lang.reflect.Method.invoke(Method.java:597) 16 at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) 17 at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426) 18 at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414) 19 at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) 20 at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 21 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) 22 at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560) 23 at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 24 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 25 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 26 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 27 at com.cpinfo.his.filter.SystemFilter.doFilter(SystemFilter.java:112) 28 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 29 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 30 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 31 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 32 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 33 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 34 at org.eclipse.jetty.continuation.ContinuationFilter.doFilter(ContinuationFilter.java:118) 35 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 36 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 37 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 38 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 39 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 40 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 41 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 42 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 43 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 44 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) 45 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 46 at java.lang.Thread.run(Thread.java:662) 47 Caused by: java.net.SocketException: SocketException invoking http://192.46.205.58:8889/SYXBKJK/SYXBKCHBLFW: Socket Closed 48 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 49 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 50 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 51 at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 52 at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:2058) 53 at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:2043) 54 at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) 55 at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:639) 56 at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) 57 ... 44 more 58 Caused by: java.net.SocketException: Socket Closed 59 at java.net.PlainSocketImpl.getOption(PlainSocketImpl.java:286) 60 at java.net.Socket.getSoTimeout(Socket.java:1032) 61 at sun.net.www.http.HttpClient.available(HttpClient.java:356) 62 at sun.net.www.http.HttpClient.New(HttpClient.java:273) 63 at sun.net.www.http.HttpClient.New(HttpClient.java:310) 64 at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:987) 65 at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:923) 66 at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:841) 67 at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1031) 68 at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1955) 69 at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1907) 70 at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) 71 at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69) 72 at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1974) 73 ... 47 more

解决方法:

public String callWebService(String WSDL, String medthod, String inXML) {
        JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();
        Client client = clientFactory.createClient(WSDL);
//配置请求
        HTTPConduit http = (HTTPConduit)client.getConduit();
        //策略
        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
        //连接超时(3分钟)
        httpClientPolicy.setConnectionTimeout(3 * 60000);
//        httpClientPolicy.setAllowChunking(false);
        //响应超时(3分钟)
        httpClientPolicy.setReceiveTimeout(3 * 60000);
        http.setClient(httpClientPolicy);
        
        try {
            Object[] result = client.invoke(medthod, inXML);
            System.out.println("HzInfomationPlatform_yyh.callWebService().result出参:-------->>"+result[0]);
            return (String) result[0];
        } catch (Exception e) {
            e.printStackTrace();
            return "fail";
        }
    }