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="
> 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

Reply via email to