Let's create a new Jira issue and attach all relevant files to it.

Regards
Werner

castor-dev wrote:
Hi,

I tried with both Unmarshall static and non-static methods. Still I am
facing the same issue while trying to convert xml to java object.

Here are my code snippets and find attached files for rest class files. I
tried with Castor generated mapping file and hand written mapping file. I
didnt see any difference in the output.

When I tried without mapping file, I am seeing Null Pointer Exception when I
tried to get values with getter method.

Please help me either ways. I got struck with this problem for 3 days.

MY INPUT XML
============

<?xml version="1.0" encoding="UTF-8"?>
<exception valid="true">
    <ns1:body xmlns:ns1="http://www.mydus.com/his/Exception";>
        <ns1:ExceptionInfo>
            <ns1:ProjectName>HIS</ns1:ProjectName>
            <ns1:ClientName>DE</ns1:ClientName>
            <ns1:Error_Type></ns1:Error_Type>
            <ns1:Error_Code
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:type="java:java.lang.String"></ns1:Error_Code>
            <ns1:Error_Activity></ns1:Error_Activity>
            <ns1:Error_Msg
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:type="java:java.lang.String"></ns1:Error_Msg>
            <ns1:EventData
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:type="java:java.lang.String"></ns1:EventData>
            <ns1:Severity>1</ns1:Severity>
            <ns1:Priority>0</ns1:Priority>
            <ns1:Resolution>
                <ns1:Flag>true</ns1:Flag>
                <ns1:Time_to_Wait>10</ns1:Time_to_Wait>
                <ns1:ProposedActions>
                    <ns1:Action></ns1:Action>
                    <ns1:SubAction></ns1:SubAction>
                </ns1:ProposedActions>
                <ns1:SuggestedAction>
                    <ns1:Action></ns1:Action>
                    <ns1:SubAction></ns1:SubAction>
                </ns1:SuggestedAction>
            </ns1:Resolution>
            <ns1:GeneralPurpose>
                <ns1:Field></ns1:Field>
                <ns1:Value></ns1:Value>
            </ns1:GeneralPurpose>
        </ns1:ExceptionInfo>
        <ns1:Fault>
            <ns1:Code>aa</ns1:Code>
            <ns1:Reason></ns1:Reason>
            <ns1:Node
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:type="java:java.lang.String"></ns1:Node>
            <ns1:Role
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:type="java:java.lang.String"></ns1:Role>
            <ns1:Detail
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:type="java:java.lang.String"></ns1:Detail>
        </ns1:Fault>
    </ns1:body>
    <ns2:envelope xmlns:ns2="http://www.mydus.com/his/Exception";>
        <ns2:Header>
            <ns2:Event>
<ns2:EventId>47fa42b3-8112-11dc-b37b-0014a4589aa9</ns2:EventId>
                <ns2:GlobalTransactionId></ns2:GlobalTransactionId>
                <ns2:TimeStamp>2007-10-22T21:47:22.984-05:00</ns2:TimeStamp>
                <ns2:EventDetail>
                    <ns2:Component>HIS</ns2:Component>
                    <ns2:Source_Domain>his</ns2:Source_Domain>
                    <ns2:Cur_Domain>DE</ns2:Cur_Domain>
                    <ns2:Object_Id>1</ns2:Object_Id>
                    <ns2:Object_Version>1</ns2:Object_Version>
<ns2:Object_Definition_Version>his</ns2:Object_Definition_Version>
                </ns2:EventDetail>
                <ns2:EventProperties>
                    <ns2:EventProperty>
                        <ns2:Field></ns2:Field>
                        <ns2:Value></ns2:Value>
                    </ns2:EventProperty>
                </ns2:EventProperties>
            </ns2:Event>
        </ns2:Header>
        <ns2:Body>
            <ns2:ExceptionInfo>
                <ns2:ProjectName>HIS</ns2:ProjectName>
                <ns2:ClientName>DE</ns2:ClientName>
                <ns2:Error_Type></ns2:Error_Type>
                <ns2:Error_Code
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:type="java:java.lang.String"></ns2:Error_Code>
                <ns2:Error_Activity></ns2:Error_Activity>
                <ns2:Error_Msg
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:type="java:java.lang.String"></ns2:Error_Msg>
                <ns2:EventData
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:type="java:java.lang.String"></ns2:EventData>
                <ns2:Severity>1</ns2:Severity>
                <ns2:Priority>0</ns2:Priority>
                <ns2:Resolution>
                    <ns2:Flag>true</ns2:Flag>
                    <ns2:Time_to_Wait>10</ns2:Time_to_Wait>
                    <ns2:ProposedActions>
                        <ns2:Action></ns2:Action>
                        <ns2:SubAction></ns2:SubAction>
                    </ns2:ProposedActions>
                    <ns2:SuggestedAction>
                        <ns2:Action></ns2:Action>
                        <ns2:SubAction></ns2:SubAction>
                    </ns2:SuggestedAction>
                </ns2:Resolution>
                <ns2:GeneralPurpose>
                    <ns2:Field></ns2:Field>
                    <ns2:Value></ns2:Value>
                </ns2:GeneralPurpose>
            </ns2:ExceptionInfo>
            <ns2:Fault>
                <ns2:Code>aa</ns2:Code>
                <ns2:Reason></ns2:Reason>
                <ns2:Node
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:type="java:java.lang.String"></ns2:Node>
                <ns2:Role
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:type="java:java.lang.String"></ns2:Role>
                <ns2:Detail
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:type="java:java.lang.String"></ns2:Detail>
            </ns2:Fault>
        </ns2:Body>
    </ns2:envelope>
</exception>

MY MAPPING XML
=================

<?xml version = "1.0" encoding = "UTF-8"?>
<mapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
         xmlns="http://castor.exolab.org/";
          xsi:schemaLocation="http://castor.exolab.org/ mapping.xsd">

  <description> Exception Castor Mapping</description>
<class name="src.com.hydus.java.exception.Exception"> <map-to xml="exception"/> <field name="Body" type = "src.com.hydus.java.exception.Body"> <bind-xml name= "Body"/> <field name="ExceptionInfo" type =
"src.com.hydus.java.exception.ExceptionInfo">
                  <bind-xml name= "ExceptionInfo"/>
                     <field name="ProjectName" type = "string">
                      <bind-xml name= "ProjectName"/>
</field> <field name="ClientName">
                      <bind-xml name= "ClientName"/>
                     </field>
                      <field name="Error_Type">
                      <bind-xml name= "Error_Type"/>
</field> <field name="Error_Code">
                      <bind-xml name= "Error_Code"/>
</field> <field name="Error_Activity">
                      <bind-xml name= "Error_Activity"/>
</field> <field name="Error_Msg">
                      <bind-xml name= "Error_Msg"/>
</field> <field name="EventData">
                      <bind-xml name= "EventData"/>
</field> <field name="Severity">
                      <bind-xml name= "Severity"/>
</field> <field name="Priority">
                      <bind-xml name= "Priority"/>
                     </field>
                     <field name="Resolution" type =
"src.com.hydus.java.exception.Resolution">
                      <bind-xml name= "Resolution"/>
                                        <field name="Flag">
                        <bind-xml name= "Flag"/>
</field> <field name="Time_to_Wait">
                        <bind-xml name= "Time_to_Wait"/>
</field> <field name="ProposedActions" type =
"src.com.hydus.java.exception.ProposedActions" minOccurs = "0" maxOccurs =
"unbounded">
                          <bind-xml name= "ProposedActions"/>
                          <field name="Action">
                        <bind-xml name= "Action"/>
</field> <field name="SubAction">
                        <bind-xml name= "SubAction"/>
</field> </field> <field name="SuggestedAction" type =
"src.com.hydus.java.exception.SuggestedAction" minOccurs = "0" maxOccurs =
"unbounded">
                          <bind-xml name= "SuggestedAction"/>
                          <field name="Action">
                          <bind-xml name= "Action"/>
</field> <field name="SubAction">
                        <bind-xml name= "SubAction"/>
</field> </field> </field> <field name="GeneralPurpose" type =
"src.com.hydus.java.exception.GeneralPurpose" minOccurs = "0" maxOccurs =
"unbounded">
                     <bind-xml name= "GeneralPurpose"/>
<field name="Field">
                       <bind-xml name= "Field"/>
</field> <field name="Value">
                       <bind-xml name= "Value"/>
</field> </field> </field> <field name="Fault" type = "src.com.hydus.java.exception.Fault"> <bind-xml name= "Fault"/> <field name="Code">
                       <bind-xml name= "Code"/>
</field> <field name="Reason">
                        <bind-xml name= "Reason"/>
</field> <field name="Node">
                        <bind-xml name= "Node"/>
                        </field>          
                        <field name="Role">
                        <bind-xml name= "Role"/>
                        </field>          
                        <field name="Detail">
                        <bind-xml name= "Detail"/>
</field> </field>
                </field>
<field name="Envelope" type = "src.com.hydus.java.exception.Envelope"> <bind-xml name= "Envelope"/> <field name="Header" type = "src.com.hydus.java.exception.Header">
                        <bind-xml name= "Header"/>
                         <field name="Event" type = 
"src.com.hydus.java.exception.Event">
<bind-xml name= "Event"/> <field name="EventId">
                         <bind-xml name= "EventId"/>
</field> <field name="GlobalTransactionId">
                         <bind-xml name= "GlobalTransactionId"/>
</field> <field name="TimeStamp">
                         <bind-xml name= "TimeStamp"/>
</field> <field name="EventDetail" type =
"src.com.hydus.java.exception.EventDetail">
<bind-xml name= "EventDetail"/> <field name="Component">
                                <bind-xml name= "Component"/>
</field> <field name="Source_Domain">
                                <bind-xml name= "Source_Domain"/>
</field> <field name="Cur_Domain">
                                <bind-xml name= "Cur_Domain"/>
                                </field>
                                <field name="Object_Id">
                                <bind-xml name= "Object_Id"/>
                                </field>
                                <field name="Object_Version">
                                <bind-xml name= "Object_Version"/>
                                </field>
                                <field name="Object_Definition_Version">
                                <bind-xml name= "Object_Definition_Version"/>
</field> </field> <field name="EventProperties" type =
"src.com.hydus.java.exception.EventProperties">
<bind-xml name= "EventProperties"/> <field name="EventProperty" type =
"src.com.hydus.java.exception.EventProperty" minOccurs = "0" maxOccurs =
"unbounded">
<bind-xml name= "EventProperty"/> <field name="Field">
                                        <bind-xml name= "Field"/>
                                       </field>
                                       <field name="Value">
                                        <bind-xml name= "Value"/>
                                       </field>
                            </field>
                           </field>
</field> </field> <field name="Body" type = "src.com.hydus.java.exception.Body"> <bind-xml name= "Body"/> </field> </field> </class> </mapping>

MY JAVA CODE SNIPPET
==================

Log log =LogFactory.getLog(ExceptionTest.class);
        InputStream xmlMapping =  new FileInputStream("mapping.xml");
InputStreamReader mappingReader = new InputStreamReader(xmlMapping); InputSource mappingSource = new InputSource(mappingReader); Mapping mapping = new Mapping(); mapping.loadMapping(mappingSource);
        FileReader in = new FileReader("SampleXML.xml");
        //WebApp webapp = WebApp.unmarshal(in);
        Unmarshaller unm = new Unmarshaller(Exception.class);
        unm.setMapping(mapping);
Exception exp = (Exception)unm.unmarshal(in);
       System.out.println(exp.getBody() .getExceptionInfo()
.getClientName());

ERROR OUTPUT
===============

Exception in thread "main" org.exolab.castor.xml.MarshalException: unable to
find FieldDescriptor for 'field' in ClassDescriptor of field{File: ; line:
11; column: 88}
        at
org.exolab.castor.xml.Unmarshaller.convertSAXExceptionToMarshalException(Unmarshaller.java:755)
        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:721)
        at
org.castor.mapping.MappingUnmarshaller.loadMappingInternal(MappingUnmarshaller.java:215)
        at
org.castor.mapping.MappingUnmarshaller.getMappingLoader(MappingUnmarshaller.java:124)
        at
org.castor.mapping.MappingUnmarshaller.getMappingLoader(MappingUnmarshaller.java:99)
        at org.exolab.castor.xml.Unmarshaller.setMapping(Unmarshaller.java:515)
        at DoMapping.main(DoMapping.java:27)
Caused by: org.xml.sax.SAXException: unable to find FieldDescriptor for
'field' in ClassDescriptor of field
        at
org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:1925)
        at
org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:1353)
        at org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1376)
        at
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:1284)
        at
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1806)
        at
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1182)
        at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
        at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:709)
        ... 5 more
Caused by: org.xml.sax.SAXException: unable to find FieldDescriptor for
'field' in ClassDescriptor of field
        at
org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:1925)
        at
org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:1353)
        at org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1376)
        at
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:1284)
        at
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1806)
        at
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1182)
        at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
        at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)
        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:709)
        at
org.castor.mapping.MappingUnmarshaller.loadMappingInternal(MappingUnmarshaller.java:215)
        at
org.castor.mapping.MappingUnmarshaller.getMappingLoader(MappingUnmarshaller.java:124)
        at
org.castor.mapping.MappingUnmarshaller.getMappingLoader(MappingUnmarshaller.java:99)
        at org.exolab.castor.xml.Unmarshaller.setMapping(Unmarshaller.java:515)
        at DoMapping.main(DoMapping.java:27)


Thanks Kiran http://www.nabble.com/file/p13409162/Exception.rar
Exception.rar


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

   http://xircles.codehaus.org/manage_email

Reply via email to