I'm using Oxygen 8.2, WSDL/SOAP Analyzer tool to send SOAP request to
Axis 2 server. When I use HTTP client it doesn't complain about
content-type=application/xml in the response. However, Oxygen is unable
to understand the SOAP response and fails with following error message:
Invalid Content-Type:application/xml. Is this an error message instead
of a SOAP response?
I tried sending a SOAP request with a dummy URI in the SOAPAction from
Oxygen and still get above error message.
This is the response I received from Oxygen support team:
The axis server responds with a "Content-Type: application/xml;
charset=utf-8" header.
Unfortunately the "com.sun.xml.messaging.saaj.soap.MessageImpl" class
from the "saaj-impl.jar" we are using to interpret the message tries to
map the content type received from the server either as "text/xml" in
which case it considers the SOAP response to be of version 1.1 or as
"application/soap+xml" in which case it considers the response to be of
version 1.2.
As neither matches, the SOAP client throws the error message you
received.
Thanks
Chandru Ganesan
________________________________
From: keith chapman [mailto:[EMAIL PROTECTED]
Sent: Tuesday, October 02, 2007 11:30 AM
To: [email protected]
Subject: Re: Axis 2.0 Content-type
Hi,
The SOAPaction is an attribute which can be used to dispatch a
message. If a service advertises that it uses a SOAPAction you can set
it in the client so that the client sends it in the request. As
SOAPaction is mandatory in SOAP 1.1 request you should atleast have the
following header
SOAPAction: ""
What is the client that your using. If its axis2 it does the
above (Add an empty SOAPaction if its not specified) if the request is
SOAP 1.1.
Thanks,
Keith
On 10/2/07, Ganesan, Chandru <[EMAIL PROTECTED]> wrote:
Hi Keith
Thanks for the quick response.
As you've guessed correctly the request does not contain
a SOAPAction. I'm not quite clear about what should the value of
SOAPAction be so that Axis 2.0 treats it as SOAP 1.1 request. As I'm
researching this topic, appreciate your thoughts on it.
Thanks
Chandru Ganesan
________________________________
From: keith chapman
[mailto:[EMAIL PROTECTED]
Sent: Tuesday, October 02, 2007 10:59 AM
To: [email protected]
Subject: Re: Axis 2.0 Content-type
No you dont need to modify your axis2.xml leave
it as it was. Can you check the SOAP request you sent. I'm sure it does
not contain the SOAPAction header. In SOAP 1.1 the SOAPAction is
mandatory and axis2 uses this as a key to differentiate between REST
request and SOAP 1.1 request (As some REST request uses text/xml as the
contentType). The reason your response was application/xml is because
Axis2 treated your request as a REST request and responded accordingly.
Thanks,
Keith.
On 10/2/07, Ganesan, Chandru
<[EMAIL PROTECTED]> wrote:
Hi
When I send a SOAP request to Axis 2.0
service the response contains
content-type=application/xml in the HTTP
header. This causes WSDL/SOAP
client tool to throw an exception as it
doesn't understand the
content-type of application/xml. For
SOAP 1.1 it expects
content-type=text/xml. I modified the
Axis2.xml to include following
lines. But this still doesn't return
content-type=text/xml. Am I
missing something in the Axis2.xml so
that content-type of text/xml can
be returned in the response.
Appreciate your input very much.
Modified Axis2.xml contains following
lines for text/xml:
=========================================================
<messageBuilders>
<messageBuilder contentType="text/xml"
class=""/>
<messageBuilder contentType=""
class=""/>
<messageBuilder
contentType="multipart/form-data"
class=""/>
</messageBuilders>
SOAP response
=============
"HTTP/1.1 200 OK[\r][\n]"
128708 DEBUG [ class
ro.sync.ui.application.A.J ] httpclient.wire.header
- << "Via: 1.1 HOUWEBPROXY03[\r][\n]"
128708 DEBUG [ class
ro.sync.ui.application.A.J ] httpclient.wire.header
- << "Connection: Keep-Alive[\r][\n]"
128708 DEBUG [ class
ro.sync.ui.application.A.J ] httpclient.wire.header
- << "Proxy-Connection:
Keep-Alive[\r][\n]"
128708 DEBUG [ class
ro.sync.ui.application.A.J ] httpclient.wire.header
- << "Transfer-Encoding:
chunked[\r][\n]"
128708 DEBUG [ class
ro.sync.ui.application.A.J ] httpclient.wire.header
- << "Date: Mon, 01 Oct 2007 19:37:41
GMT[\r][\n]"
128708 DEBUG [ class
ro.sync.ui.application.A.J ] httpclient.wire.header
- << "Content-Type: application/xml;
charset=utf-8[\r][\n]"
128708 DEBUG [ class
ro.sync.ui.application.A.J ] httpclient.wire.header
- << "Cache-Control:
no-cache="set-cookie"[\r][\n]"
128708 DEBUG [ class
ro.sync.ui.application.A.J ] httpclient.wire.header
- << "Set-Cookie:
JSESSIONID=zLGnHBMF7LRLqfr59qZ8TGWQXyHx6j7qh1BBTZyGQRXjsZn3Wb9n!16440382
36; path=/[\r][\n]"
128708 DEBUG [ class
ro.sync.ui.application.A.J ] httpclient.wire.header
- << "X-Powered-By: Servlet/2.4
JSP/2.0[\r][\n]"
thanks
Chandru Ganesan
---------------------------------------------------------------------
To unsubscribe, e-mail:
[EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/