I am confused.

I have an object called OrderDetailResponse with the following Castor mapping:

        <class
                
name="com.mycompany.service.iface.rxexpress.OrderDetailResponse">
                <map-to xml="OrderDetailResponse" />
                <field name="code" type="java.lang.String">
                        <bind-xml name="messageType" node="element" />
                </field>
                <field name="orderNumber" type="java.lang.String">
                        <bind-xml name="orderNumber" node="element" />
                </field>
                <field name="returnCode" type="int">
                        <bind-xml name="returnCode" node="element" />
                </field>
                <field name="returnMessage" type="java.lang.String">
                        <bind-xml name="returnMessage" node="element" />
                </field>
                <field name="rxs" collection="arraylist"
                        type="com. 
mycompany.service.iface.rxexpress.Prescription" container="false">
                        <bind-xml name="prescriptions" />
                </field>
                
        </class>

It has an arraylist collection of an object called Prescription with
it's own mapping so:

        <class name="com.mycompany.service.iface.rxexpress.Prescription">
                <map-to xml="prescription" />
                <field name="birthDate" type="java.util.Date">
                        <bind-xml name="birthDate" node="element" />            
        
                </field>
                <field name="firstName" type="java.lang.String">
                        <bind-xml name="firstName" node="element" />
                </field>
                <field name="lastName" type="java.lang.String">
                        <bind-xml name="lastName" node="element" />
                </field>
                <field name="memberNumber" type="java.lang.String">
                        <bind-xml name="memberNumber" node="element" />         
        
                </field>
                <field name="orderNumber" type="java.lang.String">
                        <bind-xml name="orderNumber" node="element" />          
        
                </field>
                <field name="phoneNumberAsString" type="java.lang.String">
                        <bind-xml name="phoneNumber" node="element" />          
        
                </field>
                <field name="physicianName" type="java.lang.String">
                        <bind-xml name="physicianName" node="element" />        
                
                </field>
                <field name="rxNumber" type="java.lang.String">
                        <bind-xml name="rxNumber" node="element" />             
        
                </field>
                <field name="shippedDate" type="java.util.Date">
                        <bind-xml name="shippedDate" node="element" />
                </field>
                <field name="zipCode" type="java.lang.String">
                        <bind-xml name="zipCode" node="element" />              
        
                </field>
                <field name="dosage" type="java.lang.String">
                        <bind-xml name="dosage" node="element" />               
        
                </field>
                <field name="drugName" type="java.lang.String">
                        <bind-xml name="drugName" node="element" />             
        
                </field>
                <field name="expirationDate" type="java.util.Date">
                        <bind-xml name="expirationDate" node="element" />
                </field>
                <field name="filledDate" type="java.util.Date">
                        <bind-xml name="filledDate" node="element" />
                </field>
                <field name="physicianPhoneNumberAsString" 
type="java.lang.String">
                        <bind-xml name="physicianPhoneNumber" node="element" /> 
                
                </field>
                <field name="quantity" type="java.lang.String">
                        <bind-xml name="quantity" node="element" />             
        
                </field>
                <field name="refillDate" type="java.util.Date">
                        <bind-xml name="refillDate" node="element" />           
        
                </field>
                <field name="refillsRemaining" type="int">
                        <bind-xml name="refillsRemaining" node="element" />     
                
                </field>
        </class>

When I create an OrderDetailResponse and marshal it, I get exactly
what I expect:

<?xml version="1.0"
encoding="UTF-8"?><RxRefill><OrderDetailResponse><orderNumber>12345678</orderNumber><returnCode>99</returnCode><returnMessage>Return
message.</returnMessage><prescriptions><prescription><birthDate>2009-08-17T15:59:06.588-05:00</birthDate><firstName>Tasty</firstName><lastName>Rerun</lastName><memberNumber>12345678</memberNumber><orderNumber>12345</orderNumber><phoneNumber>6516516511</phoneNumber><physicianName>Paco
Gonzales</physicianName><rxNumber>123456</rxNumber><shippedDate>2009-08-17T15:59:06.588-05:00</shippedDate><zipCode>55124</zipCode><dosage>100
Mg</dosage><drugName>Druggy
Drug</drugName><expirationDate>2009-08-17T15:59:06.588-05:00</expirationDate><filledDate>2009-08-17T15:59:06.588-05:00</filledDate><physicianPhoneNumber>9529529552</physicianPhoneNumber><quantity>1</quantity><refillDate>2009-08-17T15:59:06.588-05:00</refillDate><refillsRemaining>10</refillsRemaining></prescription></prescriptions></OrderDetailResponse></RxRefill>

However, when I take this output XML and attempt to unmarshal it back
into an object, the setPrescriptions(List prescriptions) isn't even
being called (the other setters on the object are) and I end up with
this:

<?xml version="1.0"
encoding="UTF-8"?><RxRefill><OrderDetailResponse><orderNumber>12345678</orderNumber><returnCode>99</returnCode><returnMessage>Return
message.</returnMessage><prescriptions/></OrderDetailResponse></RxRefill>

What gives?  Why can Castor marshal the objects but not unmarshal it's
own output?  Why are no exceptions being thrown or errors being given
if something is going wrong?  Any suggestions on anything I might look
at?

Thanks in advance,

Ryan

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

    http://xircles.codehaus.org/manage_email


Reply via email to