Guilherme Veloso Neves Oliveira created CXF-5791:
----------------------------------------------------

             Summary: Could not send a message. Caused by HTTP response '404: 
Not Found'
                 Key: CXF-5791
                 URL: https://issues.apache.org/jira/browse/CXF-5791
             Project: CXF
          Issue Type: Bug
    Affects Versions: 3.0.1
         Environment: GNU/Linux Debian sid with jdk1.7.0_60 (Java HotSpot(TM) 
64-Bit Server VM (build 24.60-b09, mixed mode))
            Reporter: Guilherme Veloso Neves Oliveira


The issue https://issues.apache.org/jira/browse/CXF-5781 was resolved the 
exception "port out of range: -1", but introduced the new exception below 
(Could not send Message - HTTP response '404: Not Found') 

What is surprising for me is that the application server hosting the webservice 
runs an instance of JBoss (Red Hat) and not IIS (Microsoft). I say this because 
the HTTP header response for code 404 was produced by an IIS server 
(Microsoft). In DEBUG mode, I collected the correct header produced by JBOSS 
and wrong produced by IIS (Microsoft). I caught these two headers stopping code 
execution in getResponseCode () method of the class $ 
org.apache.cxf.transport.http.netty.client.NettyHttpConduit 
NettyWrappedOutputStream.

The wrong HTTP header was produced simply running the code!

The correct HTTP header was produced as follows: at runtime, in 
initializePorts() method of class org.apache.cxf.jaxws.ServiceImpl.java the 
value of the local variable called "address" (in line 210, before calling the 
method addPort) was changed to include the number of TCP port 443 
(https://homologwsincom.in.gov.br:443/services/servicoIN). With this change 
again (the reasons are described in 
https://issues.apache.org/jira/browse/CXF-5781), everything worked normally.

Despite trying to create a patch, I did not get success. So, I would ask that 
the TCP port number was not removed from the local variable called "address".

Below the headers HTTP:
==========================================================
Correct Header

DefaultFullHttpResponse(decodeResult: success)
HTTP/1.1 200 OK
Date: Mon, 09 Jun 2014 01:22:57 GMT
X-Powered-By: Servlet 2.5; JBoss-5.0/JBossWeb-2.1
Content-Type: text/xml;charset=UTF-8
Vary: Accept-Encoding,User-Agent
Keep-Alive: timeout=20, max=100
Connection: Keep-Alive
Content-Length: 730

-------------------------------------------------------------------------------------
Wrong Header

DefaultFullHttpResponse(decodeResult: success)
HTTP/1.1 404 Not Found
Date: Mon, 09 Jun 2014 01:20:52 GMT
Server: Microsoft-IIS/7.5
Content-Type: text/html; charset=ISO-8859-1
X-Powered-By: ASP.NET
Vary: Accept-Encoding,User-Agent
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Length: 1245
=========================================================
Below, the stacktrace:

Jun 08, 2014 10:09:05 PM org.apache.cxf.phase.PhaseInterceptorChain 
doDefaultLogging
WARNING: Interceptor for 
{http://xfire.ws.incom}servicoIN#{http://xfire.ws.incom}ConsultaFormasPagamento 
has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Could not send Message.
        at 
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
        at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279)
        at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
        at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:137)
        at com.sun.proxy.$Proxy35.consultaFormasPagamento(Unknown Source)
        at 
incom.ws.xfire.ServicoINPortType_ServicoINHttpPort_Client.main(ServicoINPortType_ServicoINHttpPort_Client.java:60)
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response '404: Not 
Found' when communicating with 
https://homologwsincom.in.gov.br/services/servicoIN
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1573)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1525)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1330)
        at 
org.apache.cxf.transport.http.netty.client.NettyHttpConduit$NettyWrappedOutputStream.close(NettyHttpConduit.java:153)
        at 
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
        at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:638)
        at 
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
        ... 9 more

Exception in thread "main" javax.xml.ws.WebServiceException: Could not send 
Message.
        at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:148)
        at com.sun.proxy.$Proxy35.consultaFormasPagamento(Unknown Source)
        at 
incom.ws.xfire.ServicoINPortType_ServicoINHttpPort_Client.main(ServicoINPortType_ServicoINHttpPort_Client.java:60)
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response '404: Not 
Found' when communicating with 
https://homologwsincom.in.gov.br/services/servicoIN
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1573)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1525)
        at 
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1330)
        at 
org.apache.cxf.transport.http.netty.client.NettyHttpConduit$NettyWrappedOutputStream.close(NettyHttpConduit.java:153)
        at 
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
        at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:638)
        at 
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
        at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:514)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279)
        at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
        at 
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:137)
        ... 2 more



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to