[ http://issues.apache.org/jira/browse/AXIS-1836?page=comments#action_63916 ] Grant Kushida commented on AXIS-1836: -------------------------------------
Sorry for responding to my own comment, but I'm starting to agree that the current behavior is the "correct" behavior. The schema says that <detail> is a complex type with complex content. The processContents=lax attribute means that the complex content does not necessarily need to be validated. It does not mean that the complex content can in fact be simple or mixed content, because that would violate the SOAP schema itself. In other words - a valid <detail> element can only contain other elements (complex content) - and the <detail> is valid even if the contained elements can't be validated (processContents=lax). To Mike's comment, the zvon tutorial says 2 things: - child elements are called detail entries - each detail entry is encoded as independent element Text nodes are not elements, therefore cannot be detail entries, because detail entries are elements. However, this is sort of a moot point, as the fact remains that a) this is vague enough that at least two implementors came to a different conclusion and b) there is an installed base of these services out there, that axis is not compatible with. Then it becomes a philosophical issue - does the Axis development philosophy favor greater interoperability (Postel's principle - be liberal in what you accept, strict in what you emit), or does it favor a pure implementation of the spec? > ClassCastException in SoapFaultBuilder reading fault > ---------------------------------------------------- > > Key: AXIS-1836 > URL: http://issues.apache.org/jira/browse/AXIS-1836 > Project: Axis > Type: Bug > Components: Basic Architecture > Versions: 1.2 > Environment: FreeBSD 4.10 > Java(TM) 2 Runtime Environment, Standard Edition (build > 1.4.2-p6-root_28_jan_2004_22_24) > Reporter: Gopal V > Priority: Minor > > A Fault from the server causes a ClassCastException in SOAPFaultBuilder > The fault generated by the server (gsoap based) is > <?xml version="1.0" encoding="UTF-8"?> > <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:full="urn:xxxx:platform:soap:demo:full"> > <SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Client</faultcode> > <faultstring>Missing request args</faultstring> > <detail>Params possibly not in appropriate namespace.Possible SOAP::Lite bug > #1149481</detail> > </SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope> > Debugging gave the following: > Exception occurred: java.lang.ClassCastException (to be caught at: > org.apache.axis.message.SOAPFaultBuilder.onEndChild(), line=302 > bci=73)"thread=main", org.apache.axis.message.SOAPFaultBuilder.onEndChild(), > line=299 bci=63 > main[1] dump children > children = { > serialVersionUID: 8683452581122892189 > elementData: instance of java.lang.Object[10] (id=1094) > size: 1 > java.util.AbstractList.modCount: 1 > } > main[1] print i; > i; = 0 > main[1] print children.elementData[0].getType() > com.sun.tools.example.debug.expr.ParseException: No instance field or method > with the name getType in org.apache.axis.message.Text > main[1] print children.elementData[0] > children.elementData[0] = "Params possibly not in appropriate namespace. > Possible SOAP::Lite bug #1149481" > The code in CVS in SOAPFaultBuilder has the following code - > for (int i = 0; i < elements.length; i++) { > try { > elements[i] = ((MessageElement)children.get(i)). > getAsDOM(); > Which looks suspicious at this point. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
