Hi,
I managed to narrow down the issue; Unmarshalling throws
NullPointerException whenever there's an attribute set in the xsd:any type
data (in my case when "Version" attribute in "BriefDescriptionX" element is
set, unmarshaller fails); Further I can unmarshall the same message using
JAXB at the client side before calling the service without any problem.
I'm stuck with this issue and any pointers or guidance in resolving the
issue is greatly appreciated.

Thanks,
Nasly

The message (Captured via TCPMon);
        <soap:Body xmlns:ns1="http://www.example.org";>
                <ns1:PersonX Age="27">
                        <ns1:Name>Nasly</ns1:Name>
                        <ns1:DescriptonsX>
                                <ns1:BriefDescriptonX Version="ver1" xmlns=""
xmlns:ns3="http://www.example.org";>
                                        
<ns3:BriefDescripton>Programmer</ns3:BriefDescripton>
                                </ns1:BriefDescriptonX>
                        </ns1:DescriptonsX>
                </ns1:PersonX>
        </soap:Body>

The schema;
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.example.org"; 
        xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
        targetNamespace="http://www.example.org"; elementFormDefault="qualified">
        <xs:element name="PersonX">
                <xs:complexType>
                        <xs:sequence>
                                <xs:element name="Name" type="xs:string"/>
                                <xs:element ref="DescriptonsX"/>
                        </xs:sequence>
                        <xs:attribute name="Age" type="xs:int" use="optional"/>
                </xs:complexType>
        </xs:element>

        <xs:element name="DescriptonsX" type="DescriptonsTypeX"/>

        <xs:complexType name="DescriptonsTypeX">
                <xs:sequence>
                        <xs:any processContents="skip" minOccurs="0" 
maxOccurs="unbounded"/>
                </xs:sequence>
        </xs:complexType>

        <xs:element name="BriefDescriptonX">
                <xs:complexType>
                        <xs:sequence>
                                <xs:element name="BriefDescripton" 
type="xs:string"/>
                        </xs:sequence>
                        <xs:attribute name="Version" type="xs:string" 
use="optional"/>
                </xs:complexType>
        </xs:element>
</xs:schema>

Error Trace;
java.lang.NullPointerException
        at org.apache.xml.utils.DOMBuilder.startElement(DOMBuilder.java:322)
        at
org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1020)
        at
com.sun.xml.bind.v2.runtime.unmarshaller.DomLoader.startElement(DomLoader.java:82)
        at
com.sun.xml.bind.v2.runtime.unmarshaller.ProxyLoader.startElement(ProxyLoader.java:19)
        at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:402)
        at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:380)
        at
com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:35)
        at
com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:208)
        at
com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:142)
        at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:333)
        at
com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:305)
        at org.codehaus.xfire.jaxb2.JaxbType.readObject(JaxbType.java:203)
        at
org.codehaus.xfire.aegis.AegisBindingProvider.readParameter(AegisBindingProvider.java:169)
        at
org.codehaus.xfire.service.binding.AbstractBinding.read(AbstractBinding.java:206)
        at
org.codehaus.xfire.service.binding.DocumentBinding.readMessage(DocumentBinding.java:35)

------------------------------------------------------------------------------------------------------------------------------------------------





Nasly wrote:
> 
> Hi,
> I'm using XFire 1.2.6 with JAXB2. (schema first development)
> 
> I'm having problem in accepting data send in xsd:any elements from client.
> XFire/JAXB fails to identify the type in unmarshaling the request. 
> 
> Is there any sample or reference for sending xsd:any data from clients?
> 
> I must be missing some configuration or mapping stuff; Any help in
> resolving the issue is greatly appreciated.
> 
> Given below are the context information related to problem I'm having;
> 
> Here's sample schema im having;
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema xmlns="http://www.example.org"; 
>       xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
>       targetNamespace="http://www.example.org"; elementFormDefault="qualified">
>       <xs:element name="PersonX">
>               <xs:complexType>
>                       <xs:sequence>
>                               <xs:element name="Name" type="xs:string"/>
>                               <xs:element ref="CustomDescriptonX"/>
>                       </xs:sequence>
>                       <xs:attribute name="Age" type="xs:int" use="optional"/>
>               </xs:complexType>
>       </xs:element>
> 
>       <xs:element name="CustomDescriptonX" type="CustomDescriptonTypeX"/>
> 
>       <xs:complexType name="CustomDescriptonTypeX">
>               <xs:sequence>
>                       <xs:any processContents="skip" minOccurs="0" 
> maxOccurs="unbounded"/>
>               </xs:sequence>
>       </xs:complexType>
>       
>       <xs:element name="BriefDescriptonX">
>               <xs:complexType>
>                       <xs:sequence>
>                               <xs:element name="Description" 
> type="BriefDescriptonTypeX"/>
>                       </xs:sequence>
>                       <xs:attribute name="Version" type="xs:string" 
> use="optional"/>
>               </xs:complexType>
>       </xs:element>
> 
>       <xs:complexType name="BriefDescriptonTypeX">
>               <xs:sequence>
>                       <xs:element name="Country" type="CountryTypeX"/>
>               </xs:sequence>
>       </xs:complexType>
>       
>       <xs:complexType name="CountryTypeX">
>               <xs:sequence>
>                       <xs:element name="CountryName" type="xs:string"/>
>               </xs:sequence>
>       </xs:complexType>
> </xs:schema>
> 
> Here's sample data being sent from client (Captured from TCPMon);
> 
> <soap:Body xmlns:ns1="http://www.example.org";>
>               <ns1:PersonX Age="27">
>                       <ns1:Name>Nasly</ns1:Name>
>                       <ns1:CustomDescriptonX>
>                               <ns1:BriefDescriptonX Version="ver1" xmlns="">
>                                       <ns1:Description>
>                                               <ns1:Country>
>                                                       
> <ns1:CountryName>SL</ns1:CountryName>
>                                               </ns1:Country>
>                                       </ns1:Description>
>                               </ns1:BriefDescriptonX>
>                       </ns1:CustomDescriptonX>
>               </ns1:PersonX>
>       </soap:Body>
> 
> 
> Here's SOAP reponse that I get;
> 
> <soap:Body>
>               <soap:Fault>
>                       <faultcode>soap:Server</faultcode>
>                       <faultstring>Could not unmarshall type : 
> null</faultstring>
>               </soap:Fault>
> </soap:Body>
> 
>  Here's XFire Error Trace;
> 
> java.lang.NullPointerException
>       at org.apache.xml.utils.DOMBuilder.startElement(DOMBuilder.java:322)
>       at
> org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1020)
>       at
> com.sun.xml.bind.v2.runtime.unmarshaller.DomLoader.startElement(DomLoader.java:82)
>       at
> com.sun.xml.bind.v2.runtime.unmarshaller.ProxyLoader.startElement(ProxyLoader.java:19)
>       at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:369)
>       at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:347)
>       at
> com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:35)
>       at
> com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleStartElement(StAXStreamConnector.java:201)
>       at
> com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:135)
>       at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:337)
>       at
> com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:309)
>       at org.codehaus.xfire.jaxb2.JaxbType.readObject(JaxbType.java:203)
>       at
> org.codehaus.xfire.aegis.AegisBindingProvider.readParameter(AegisBindingProvider.java:169)
>       at
> org.codehaus.xfire.service.binding.AbstractBinding.read(AbstractBinding.java:206)
>       at
> org.codehaus.xfire.service.binding.DocumentBinding.readMessage(DocumentBinding.java:35)
>       at
> org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.java:42)
>       at
> org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
>       at
> org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
>       at
> org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
>       at
> org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:304)
>       at
> org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:129)
>       at
> org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
>       at
> com.isa.thinair.webservices.core.web.XFireAAServlet.doPost(XFireAAServlet.java:36)
> 
> 
> 
> 
> Thanks,
> Nasly
> 

-- 
View this message in context: 
http://www.nabble.com/Unmarshalling-Error-in-accepting-xsd%3Aany-data-tf3765782.html#a10683424
Sent from the XFire - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to