2011-03-10 31 views
5

Actualmente estoy intentando llamar a un servicio web con un cliente creado con Apache CXF. Aunque el servicio está disponible en el navegador, no me puedo conectar a él debido al siguiente error.No se puede llamar al servicio web

¿Alguna idea del problema?

org.apache.cxf.phase.PhaseInterceptorChain doIntercept 
INFO: Interceptor has thrown exception, unwinding now 
org.apache.cxf.interceptor.Fault: Connection refused: connect 
     at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:75) 
     at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) 
     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:208) 
     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:276) 
     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:222) 
     at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) 
     at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135) 
     at $Proxy78.getStandardVersion(Unknown Source) 
     at org.apache.jsp.services.Result_jsp._jspService(Result_jsp.java:622) 
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) 
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308) 
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) 
     at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:843) 
     at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:679) 
     at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1293) 
     at java.lang.Thread.run(Thread.java:619) 
Caused by: com.ctc.wstx.exc.WstxIOException: Connection refused: connect 
     at com.ctc.wstx.sw.BaseStreamWriter.flush(BaseStreamWriter.java:313) 
     at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:73) 
     ... 26 more 
Caused by: java.net.ConnectException: Connection refused: connect 
     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.SocksSocketImpl.connect(SocksSocketImpl.java:366) 
     at java.net.Socket.connect(Socket.java:525) 
     at sun.net.NetworkClient.doConnect(NetworkClient.java:158) 
     at sun.net.www.http.HttpClient.openServer(HttpClient.java:394) 
     at sun.net.www.http.HttpClient.openServer(HttpClient.java:529) 
     at sun.net.www.http.HttpClient.<init>(HttpClient.java:233) 
     at sun.net.www.http.HttpClient.New(HttpClient.java:306) 
     at sun.net.www.http.HttpClient.New(HttpClient.java:323) 
     at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:860) 
     at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:801) 
     at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:726) 
     at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:904) 
     at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1766) 
     at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1734) 
     at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42) 
     at com.ctc.wstx.io.UTF8Writer.flush(UTF8Writer.java:96) 
     at com.ctc.wstx.sw.BufferingXmlWriter.flush(BufferingXmlWriter.java:214) 
     at com.ctc.wstx.sw.BaseStreamWriter.flush(BaseStreamWriter.java:311) 
     ... 27 more 

Respuesta

4

parece que una de las dos opciones

  1. Usted está intentando conectarse a la URI mal (servidor/puerto/url)
  2. Se trata de conectarse a un servicio que está bloqueada por una firewall

Maybee nos pudiera dar alguna visión más clara en la configuración que está utilizando

+0

el servicio web se implementa en un Tomcat en mi máquina de desarrollo y el wsdl está disponible a través de un navegador web. – inforen

+0

Estaba más interesado en cómo implememte apache CXF para poder ayudarlo más. Si no es una de las opciones anteriores, es probable que haya algo en su configuración CXF –

+0

, parece que el problema está relacionado con wsdl, es decir, el wsdl provisto no es válido debido a esto ... "" – inforen

2

Con CXF puede anular la URL de destino del WSDL mediante la siguiente configuración del resorte CXF

<bean id="service" class="your.pack.age.YourService" 
    factory-bean="clientFactory" factory-method="create"> 
</bean> 

<bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> 
    <property name="serviceClass" value="your.pack.age.YourService" /> 
    <property name="address" value="${service.url}" /> 
</bean> 
0

Abrir la configuración del navegador, seguro que encontrará habilitado proxy web, que necesita para aprobar los mismos ajustes en el código:

HTTPConduit http = (HTTPConduit) client.getConduit(); 
    http.getClient().setProxyServer("proxy server URL"); 
    http.getClient().setProxyServerPort(port); 
Cuestiones relacionadas