Hi, Nandana
yes, AXIOM trunk fixed this issue.
thanks
-jason
Nandana Mihindukulasooriya wrote:
Hi Json,
Did you try using AXIOM trunk ? There was an issue in AXIOM which
created wrong structure for SOAP 1.1 fault, but it is now fixed in the
trunk. Please have a look at these two issues. [1], [2]
thanks,
nandana
[1] - https://issues.apache.org/jira/browse/WSCOMMONS-343
[2] - http://issues.apache.org/jira/browse/RAMPART-164
On Thu, Oct 23, 2008 at 12:36 PM, jason
zhang <[EMAIL PROTECTED]>
wrote:
Hi
I use AXIOM style client code to invoke service. My service is
implemented using generated stub. It uses policy for security. To test
the fault handling, my server code always throws AxisFault.
If the client code has this line:
"options.setSoapVersionURI(org.apache.axiom.soap.SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);",
the AxisFault is reported back correctly to client. The response is
like this
--------------------
HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Content-Type: application/soap+xml; action=""true"
href="http://www.w3.org/2005/08/addressing/soap/fault" target="_blank">http://www.w3.org/2005/08/addressing/soap/fault";charset=UTF-8
Transfer-Encoding: chunked
Date: Thu, 23 Oct 2008 04:29:32 GMT
Connection: close
<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope
xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Body><soapenv:Fault
xmlns:axis2ns5="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Code><soapenv:Value>axis2ns5:Server</soapenv:Value></soapenv:Code>
de
<soapenv:Reason><soapenv:Text xml:lang="en-US">error
...</soapenv:Text></soapenv:Reason>
--------------------------
If the client code does not have that line, the message is sent to
server using SOAP 11 style,
The response is a HTTP error from tomcat.
---------------------
HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Content-Length: 1000
Date: Thu, 23 Oct 2008 04:30:06 GMT
Connection: close
<html><head><title>Apache Tomcat/6.0.16 - Error
report</title><style>...</style>
</head><body><h1>HTTP Status 500 - </h1><HR
size="1" noshade="noshade"><p><b>type</b> Status
report</p><p><b>message</b>
<u></u></p><p><b>description</b>
<u>The server encountered an internal error () that prevented it
from fulfilling this request.</u></p><HR size="1"
noshade="noshade"><h3>Apache
Tomcat/6.0.16</h3></body></html>
----------------------------
I traced the error to
org.apache.axiom.soap.impl.builder.SOAP11BuilderHelper line 151
private void processText(XMLStreamReader parser, OMElement value) {
try {
146 int token = parser.next();
147 while (token != XMLStreamReader.END_ELEMENT) {
148 if (token == XMLStreamReader.CHARACTERS) {
149 factory.createOMText(value, parser.getText());
150 } else {
151 throw new SOAPProcessingException(
"Only Characters are allowed here");
}
token = parser.next();
}
} catch (XMLStreamException e) {
throw new SOAPProcessingException(e);
}
}
When the error occurs, the value is an
org.apache.axiom.soap.impl.dom.soap11.SOAP11FaultCodeImpl element.
token is 1(StartElement).
Is this a bug or something wrong in my code?
thanks
-jason
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Nandana Mihindukulasooriya
WSO2 inc.
http://nandana83.blogspot.com/
http://www.wso2.org
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
|