Discussion:
Response from CXF fails, same response using SOAP-UI works..?
Marco Pas
2012-05-04 13:46:20 UTC
Permalink
Hi there,

i have a problem in which i seem to get stuck..

The case is that i have implemented a webservice which is called by an
external system. This system calls a webservice and gets a immediate
response.
A strange thing occurs when i run the cxf service and gave back a
payload, then the external systems is not able to handle my request.
When i return the "same" (copy and paste from the logfile payload)
using SOAP-UI the external system is perfectly capable of handling the
response.

So.. to be short.. i have generated a service according to a wsdl
file, implemented the service and the external system is calling my
service, i return an object ..

When returning from cxf it fails --> cxf complains:
org.apache.cxf.interceptor.Fault: Could not send Message...
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response
'400: Bad Request' when communicating with ...

When returning from SOAP-UI --> all faces are happy and it works..

Any suggestions on how to tackle this issue??

/Marco
Christopher Riley
2012-05-04 14:14:10 UTC
Permalink
Hi Marco,

It may not be the SOAP message that is the problem but rather the HTTP
Headers/Details that is different. It wasn't clear in the log if you
captured the entire HTTP payload including the SOAP Envelope in the log. I
would start there and see what mismatch may be occurring.

Chris
Post by Marco Pas
Hi there,
i have a problem in which i seem to get stuck..
The case is that i have implemented a webservice which is called by an
external system. This system calls a webservice and gets a immediate
response.
A strange thing occurs when i run the cxf service and gave back a
payload, then the external systems is not able to handle my request.
When i return the "same" (copy and paste from the logfile payload)
using SOAP-UI the external system is perfectly capable of handling the
response.
So.. to be short.. i have generated a service according to a wsdl
file, implemented the service and the external system is calling my
service, i return an object ..
org.apache.cxf.interceptor.Fault: Could not send Message...
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response
'400: Bad Request' when communicating with ...
When returning from SOAP-UI --> all faces are happy and it works..
Any suggestions on how to tackle this issue??
/Marco
--
Chris Riley, Partner
HKM Consulting LLC
(w) hkmconsultingllc.com
(o) 774.553.5314
(m) 508.273.3102
(f) 774.553.5316
Gmail
2012-05-04 14:24:45 UTC
Permalink
Hi Chris,

Thanks for your reply! I am pretty new to the whole Http Header stuff and maybe you could point me into the right direction. Should I use something like wireshark to examine the http headers?

And can I control the http headers from cxf? I was under the impression that just responding to a soap call would be enough.
Post by Christopher Riley
Hi Marco,
It may not be the SOAP message that is the problem but rather the HTTP
Headers/Details that is different. It wasn't clear in the log if you
captured the entire HTTP payload including the SOAP Envelope in the log. I
would start there and see what mismatch may be occurring.
Chris
Post by Marco Pas
Hi there,
i have a problem in which i seem to get stuck..
The case is that i have implemented a webservice which is called by an
external system. This system calls a webservice and gets a immediate
response.
A strange thing occurs when i run the cxf service and gave back a
payload, then the external systems is not able to handle my request.
When i return the "same" (copy and paste from the logfile payload)
using SOAP-UI the external system is perfectly capable of handling the
response.
So.. to be short.. i have generated a service according to a wsdl
file, implemented the service and the external system is calling my
service, i return an object ..
org.apache.cxf.interceptor.Fault: Could not send Message...
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response
'400: Bad Request' when communicating with ...
When returning from SOAP-UI --> all faces are happy and it works..
Any suggestions on how to tackle this issue??
/Marco
--
Chris Riley, Partner
HKM Consulting LLC
(w) hkmconsultingllc.com
(o) 774.553.5314
(m) 508.273.3102
(f) 774.553.5316
Andrei Shakirin
2012-05-04 14:35:38 UTC
Permalink
Hi Marco,

If you are Eclipse user, just select and configure TCP/IP Monitor there.
Alternative you can use Wireshark or HTTPTracer .

Just catch both requests from SoapUI and CXF client including HTTP headers and look for the differences.

Regards,
Andrei.

-----Original Message-----
From: Gmail [mailto:marco.pasopas-***@public.gmane.org]
Sent: 04 May 2012 16:25
To: users-qJ/***@public.gmane.org
Cc: users-qJ/***@public.gmane.org
Subject: Re: Response from CXF fails, same response using SOAP-UI works..?

Hi Chris,

Thanks for your reply! I am pretty new to the whole Http Header stuff and maybe you could point me into the right direction. Should I use something like wireshark to examine the http headers?

And can I control the http headers from cxf? I was under the impression that just responding to a soap call would be enough.
Post by Christopher Riley
Hi Marco,
It may not be the SOAP message that is the problem but rather the HTTP
Headers/Details that is different. It wasn't clear in the log if you
captured the entire HTTP payload including the SOAP Envelope in the
log. I would start there and see what mismatch may be occurring.
Chris
Post by Marco Pas
Hi there,
i have a problem in which i seem to get stuck..
The case is that i have implemented a webservice which is called by
an external system. This system calls a webservice and gets a
immediate response.
A strange thing occurs when i run the cxf service and gave back a
payload, then the external systems is not able to handle my request.
When i return the "same" (copy and paste from the logfile payload)
using SOAP-UI the external system is perfectly capable of handling
the response.
So.. to be short.. i have generated a service according to a wsdl
file, implemented the service and the external system is calling my
service, i return an object ..
org.apache.cxf.interceptor.Fault: Could not send Message...
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response
'400: Bad Request' when communicating with ...
When returning from SOAP-UI --> all faces are happy and it works..
Any suggestions on how to tackle this issue??
/Marco
--
Chris Riley, Partner
HKM Consulting LLC
(w) hkmconsultingllc.com
(o) 774.553.5314
(m) 508.273.3102
(f) 774.553.5316
Christopher Riley
2012-05-04 14:54:23 UTC
Permalink
Yes that would do the trick. In SOAPUI there is a HTTP tab that you can
examine the full payload which will then allow you to compare.
Post by Gmail
Hi Chris,
Thanks for your reply! I am pretty new to the whole Http Header stuff and
maybe you could point me into the right direction. Should I use something
like wireshark to examine the http headers?
And can I control the http headers from cxf? I was under the impression
that just responding to a soap call would be enough.
Op May 4, 2012 om 16:14 heeft Christopher Riley <
Post by Christopher Riley
Hi Marco,
It may not be the SOAP message that is the problem but rather the HTTP
Headers/Details that is different. It wasn't clear in the log if you
captured the entire HTTP payload including the SOAP Envelope in the log.
I
Post by Christopher Riley
would start there and see what mismatch may be occurring.
Chris
Post by Marco Pas
Hi there,
i have a problem in which i seem to get stuck..
The case is that i have implemented a webservice which is called by an
external system. This system calls a webservice and gets a immediate
response.
A strange thing occurs when i run the cxf service and gave back a
payload, then the external systems is not able to handle my request.
When i return the "same" (copy and paste from the logfile payload)
using SOAP-UI the external system is perfectly capable of handling the
response.
So.. to be short.. i have generated a service according to a wsdl
file, implemented the service and the external system is calling my
service, i return an object ..
org.apache.cxf.interceptor.Fault: Could not send Message...
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response
'400: Bad Request' when communicating with ...
When returning from SOAP-UI --> all faces are happy and it works..
Any suggestions on how to tackle this issue??
/Marco
--
Chris Riley, Partner
HKM Consulting LLC
(w) hkmconsultingllc.com
(o) 774.553.5314
(m) 508.273.3102
(f) 774.553.5316
--
Chris Riley, Partner
HKM Consulting LLC
(w) hkmconsultingllc.com
(o) 774.553.5314
(m) 508.273.3102
(f) 774.553.5316
Daniel Kulp
2012-05-04 15:49:46 UTC
Permalink
Do you know anything about the other server? The *COMMON* cause of this is that it's an old version of .NET that doesn't support HTTP 1.1 chunking.

See:
http://cxf.apache.org/docs/client-http-transport-including-ssl-support.html#ClientHTTPTransport%28includingSSLsupport%29-ANoteAboutChunking

and the docs on that page to turn it off and seeing if that helps.

Dan
Post by Marco Pas
Hi there,
i have a problem in which i seem to get stuck..
The case is that i have implemented a webservice which is called by an
external system. This system calls a webservice and gets a immediate
response.
A strange thing occurs when i run the cxf service and gave back a
payload, then the external systems is not able to handle my request.
When i return the "same" (copy and paste from the logfile payload)
using SOAP-UI the external system is perfectly capable of handling the
response.
So.. to be short.. i have generated a service according to a wsdl
file, implemented the service and the external system is calling my
service, i return an object ..
org.apache.cxf.interceptor.Fault: Could not send Message...
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response
'400: Bad Request' when communicating with ...
When returning from SOAP-UI --> all faces are happy and it works..
Any suggestions on how to tackle this issue??
/Marco
--
Daniel Kulp
dkulp-1oDqGaOF3Lkdnm+***@public.gmane.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com
Marco Pas
2012-05-05 14:05:11 UTC
Permalink
The client that is calling my implemented service is using gsoap. So
the client calls our webservice and we give back a response.
When returning the response using our implemented service using CXF
all fails but replying the same response using soap-ui it works ..
Do you know anything about the other server?   The *COMMON* cause of this is that it's an old version of .NET that doesn't support HTTP 1.1 chunking.
http://cxf.apache.org/docs/client-http-transport-including-ssl-support.html#ClientHTTPTransport%28includingSSLsupport%29-ANoteAboutChunking
and the docs on that page to turn it off and seeing if that helps.
Dan
Post by Marco Pas
Hi there,
i have a problem in which i seem to get stuck..
The case is that i have implemented a webservice which is called by an
external system. This system calls a webservice and gets a immediate
response.
A strange thing occurs when i run the cxf service and gave back a
payload, then the external systems is not able to handle my request.
When i return the "same" (copy and paste from the logfile payload)
using SOAP-UI the external system is perfectly capable of handling the
response.
So.. to be short.. i have generated a service according to a wsdl
file, implemented the service and the external system is calling my
service, i return an object ..
org.apache.cxf.interceptor.Fault: Could not send Message...
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response
'400: Bad Request' when communicating with  ...
When returning from SOAP-UI --> all faces are happy and it works..
Any suggestions on how to tackle this issue??
/Marco
--
Daniel Kulp
Talend Community Coder - http://coders.talend.com
Marco Pas
2012-05-07 08:22:53 UTC
Permalink
I checked with wireshark and i am seeing serious differences..

It misread the logging of CXF and found that CXF is sending an empty
response message on receiving a call to a webservice method.

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Header><MessageID
xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:7cd08ed0-d1ab-4f04-a152-565da745a1ef</MessageID><To
xmlns="http://www.w3.org/2005/08/addressing">http://www.w3.org/2005/08/addressing/anonymous</To><ReplyTo
xmlns="http://www.w3.org/2005/08/addressing"><Address>hhettp://www.w3.org/2005/08/addressing/none</Address></ReplyTo><RelatesTo
xmlns="http://www.w3.org/2005/08/addressing">http://www.w3.org/2005/08/addressing/unspecified</RelatesTo></soap:Header><soap:Body/></soap:Envelope>

After returning this response to the caller the actual response is
send in a different request.
It guess that i am doing something wrong when using ws-addressing..
Any pointers?
Do you know anything about the other server?   The *COMMON* cause of this is that it's an old version of .NET that doesn't support HTTP 1.1 chunking.
http://cxf.apache.org/docs/client-http-transport-including-ssl-support.html#ClientHTTPTransport%28includingSSLsupport%29-ANoteAboutChunking
and the docs on that page to turn it off and seeing if that helps.
Dan
Post by Marco Pas
Hi there,
i have a problem in which i seem to get stuck..
The case is that i have implemented a webservice which is called by an
external system. This system calls a webservice and gets a immediate
response.
A strange thing occurs when i run the cxf service and gave back a
payload, then the external systems is not able to handle my request.
When i return the "same" (copy and paste from the logfile payload)
using SOAP-UI the external system is perfectly capable of handling the
response.
So.. to be short.. i have generated a service according to a wsdl
file, implemented the service and the external system is calling my
service, i return an object ..
org.apache.cxf.interceptor.Fault: Could not send Message...
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response
'400: Bad Request' when communicating with  ...
When returning from SOAP-UI --> all faces are happy and it works..
Any suggestions on how to tackle this issue??
/Marco
--
Daniel Kulp
Talend Community Coder - http://coders.talend.com
Andrei Shakirin
2012-05-07 13:00:05 UTC
Permalink
Hi Marco,

I see small error in ReplyTo/Address header: hhettp://www.w3.org/2005/08/addressing/none.
Does it come from your client?

Regards,
Andrei.

-----Original Message-----
From: Marco Pas [mailto:marco.pasopas-***@public.gmane.org]
Sent: 07 May 2012 10:23
To: Daniel Kulp
Cc: users-qJ/***@public.gmane.org
Subject: Re: Response from CXF fails, same response using SOAP-UI works..?

I checked with wireshark and i am seeing serious differences..

It misread the logging of CXF and found that CXF is sending an empty response message on receiving a call to a webservice method.

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Header><MessageID
xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:7cd08ed0-d1ab-4f04-a152-565da745a1ef</MessageID><To
xmlns="http://www.w3.org/2005/08/addressing">http://www.w3.org/2005/08/addressing/anonymous</To><ReplyTo
xmlns="http://www.w3.org/2005/08/addressing"><Address>hhettp://www.w3.org/2005/08/addressing/none</Address></ReplyTo><RelatesTo
xmlns="http://www.w3.org/2005/08/addressing">http://www.w3.org/2005/08/addressing/unspecified</RelatesTo></soap:Header><soap:Body/></soap:Envelope>

After returning this response to the caller the actual response is send in a different request.
It guess that i am doing something wrong when using ws-addressing..
Any pointers?
Do you know anything about the other server?   The *COMMON* cause of this is that it's an old version of .NET that doesn't support HTTP 1.1 chunking.
http://cxf.apache.org/docs/client-http-transport-including-ssl-support
.html#ClientHTTPTransport%28includingSSLsupport%29-ANoteAboutChunking
and the docs on that page to turn it off and seeing if that helps.
Dan
Post by Marco Pas
Hi there,
i have a problem in which i seem to get stuck..
The case is that i have implemented a webservice which is called by
an external system. This system calls a webservice and gets a
immediate response.
A strange thing occurs when i run the cxf service and gave back a
payload, then the external systems is not able to handle my request.
When i return the "same" (copy and paste from the logfile payload)
using SOAP-UI the external system is perfectly capable of handling
the response.
So.. to be short.. i have generated a service according to a wsdl
file, implemented the service and the external system is calling my
service, i return an object ..
org.apache.cxf.interceptor.Fault: Could not send Message...
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response
'400: Bad Request' when communicating with  ...
When returning from SOAP-UI --> all faces are happy and it works..
Any suggestions on how to tackle this issue??
/Marco
--
Daniel Kulp
http://coders.talend.com
Loading...