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 
-- 
View this message in context: 
http://www.nabble.com/Problem-while-mapping-and-using-un-marshalling.-i-need-help-on-this..-tf4691603.html#a13409162
Sent from the Castor - User mailing list archive at Nabble.com.


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

    http://xircles.codehaus.org/manage_email

Reply via email to