Java Mailing List Archive

http://www.junlu.com/

Home » user.castor »

Re: [castor-user] unable to find FieldDescriptor

PorridgeBear

2010-02-12

Replies: Find Java Web Hosting

Author LoginPost Reply

Hi,

So I tried add namespaces and prefixes in various permutations ... the
example below being complete and compiles without warnings (sometimes if I
accidentally have a typo, then Castor fails at startup - this just assures
me that the mapping file is being loaded as a Spring marshaller bean just
fine when no warnings come out)

I didn't see anything on reasoning for using namespaces/prefixes for Spring
usage so I just had to guess but all permutations fail. Here is my most
complete mapping:

Mapping

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN"
 "http://castor.org/mapping.dtd">
 
<mapping xmlns:smart="http://localhost/SmartPayments">

 <description>Description of the mapping</description>
 
 <class name="com.qas.newmedia.internet.emi.search.model.CardTypeResponse">
   <map-to xml="GetCardTypeResponse" ns-uri="http://localhost/SmartPayments"
ns-prefix="smart" />
   
   <field name="cardType" type="string">
     <bind-xml name="smart:GetCardTypeResult" />
   </field>
 </class>
 
</mapping>

Error

But again, the Exception always remains:

 at
org.springframework.web.servlet.mvc.AbstractController.handleRequest (AbstractController.java:153)
 at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle (SimpleControllerHandlerAdapter.java:48)
 at
org.springframework.web.servlet.DispatcherServlet.doDispatch (DispatcherServlet.java:875)
 at
org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet.java:809)
 at
org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:571)
 ... 87 more
Caused by: org.exolab.castor.xml.MarshalException: unable to find
FieldDescriptor for 'GetCardTypeResult' in ClassDescriptor of
GetCardTypeResponse{File: [not available]; line: 1; column: 119}
 at
org.exolab.castor.xml.Unmarshaller.convertSAXExceptionToMarshalException (Unmarshaller.java:761)
 at org.exolab.castor.xml.Unmarshaller.unmarshal (Unmarshaller.java:727)
 at
org.springframework.oxm.castor.CastorMarshaller.unmarshalReader (CastorMarshaller.java:384)
 ... 96 more
Caused by: org.xml.sax.SAXException: unable to find FieldDescriptor for
'GetCardTypeResult' in ClassDescriptor of GetCardTypeResponse
 at
org.exolab.castor.xml.UnmarshalHandler.startElement (UnmarshalHandler.java:2000)
 at
org.exolab.castor.xml.UnmarshalHandler.startElement (UnmarshalHandler.java:1418)
 at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
 at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown
Source)
 at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
 at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
 at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
 at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
 at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
 at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
 at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
 at org.exolab.castor.xml.Unmarshaller.unmarshal (Unmarshaller.java:715)
 ... 97 more



Werner Guttmann-6 wrote:
>
> Okay. Then you will have to introduce namespace URLs and prefices to
> your mapping file.
>
> Cheers
> Wernr
>
> On 11.02.2010 21:32, PorridgeBear wrote:
>>
>> Hey,
>>
>> I am using Spring Web Services. I downloaded the full Spring WS with
>> dependencies and am using the Castor version supplied. I create a Castor
>> bean and pass it a castor-mapping.xml.
>>
>> Thanks :)
>>
>>
>> Werner Guttmann-6 wrote:
>>>
>>> Hi,
>>>
>>> what frameworks are you using to integrate Castor XML for processing
>>> SOAP messages ? Or is this really as simple as doing things manually ?
>>>
>>> If you doing this completely manually, please do not forget to make the
>>> namespaces known to Castor you seem to be using.
>>>
>>> Cheers
>>> Werner
>>>
>>> On 11.02.2010 15:57, PorridgeBear wrote:
>>>>
>>>> Hi,
>>>>
>>>> I am consuming a very simple web service that returns a card type, e.g.
>>>> VISA, given a card number. I have no problem calling the web service
>>>> and
>>>> acquiring the response. I cannot get Castor to map the response onto a
>>>> plain
>>>> POJO. Details below:
>>>>
>>>> XML Returned
>>>>
>>>> <?xml version="1.0" encoding="UTF-8"?><GetCardTypeResponse
>>>> xmlns="http://localhost/SmartPayments/"><GetCardTypeResult>VISA</GetCardTypeResult></GetCardTypeResponse>
>>>>
>>>> Mapping Class
>>>>
>>>>  <class name="CardTypeResponse">
>>>>    <map-to xml="GetCardTypeResponse" />
>>>>    
>>>>    <field name="cardType" type="string">
>>>>      <bind-xml name="GetCardTypeResult" />
>>>>    </field>
>>>>  </class>
>>>>
>>>> Class
>>>>
>>>> public class CardTypeResponse {
>>>>
>>>>  private String cardType;
>>>>
>>>>  public String getCardType() {
>>>>    return cardType;
>>>>  }
>>>>
>>>>  public void setCardType(String cardType) {
>>>>    this.cardType = cardType;
>>>>  }
>>>> }
>>>>
>>>> Unmarshal Call
>>>>
>>>> CardTypeResponse ct = (CardTypeResponse)
>>>> this.unmarshaller.unmarshal(s);
>>>>
>>>> Exception
>>>>
>>>> Caused by: org.exolab.castor.xml.MarshalException: unable to find
>>>> FieldDescriptor for 'GetCardTypeResult' in ClassDescriptor of
>>>> GetCardTypeResponse{File: [not available]; line: 1; column: 119}
>>>>  at
>>>> org.exolab.castor.xml.Unmarshaller.convertSAXExceptionToMarshalException (Unmarshaller.java:761)
>>>>  at org.exolab.castor.xml.Unmarshaller.unmarshal (Unmarshaller.java:727)
>>>>  at
>>>> org.springframework.oxm.castor.CastorMarshaller.unmarshalReader (CastorMarshaller.java:384)
>>>>  ... 96 more
>>>> Caused by: org.xml.sax.SAXException: unable to find FieldDescriptor for
>>>> 'GetCardTypeResult' in ClassDescriptor of GetCardTypeResponse
>>>>  at
>>>> org.exolab.castor.xml.UnmarshalHandler.startElement (UnmarshalHandler.java:2000)
>>>>  at
>>>> org.exolab.castor.xml.UnmarshalHandler.startElement (UnmarshalHandler.java:1418)
>>>>  at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown
>>>> Source)
>>>>  at
>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown
>>>> Source)
>>>>  at
>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
>>>> Source)
>>>>  at
>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
>>>> Source)
>>>>  at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>>>>  at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>>>>  at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>  at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>>>  at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown
>>>> Source)
>>>>  at org.exolab.castor.xml.Unmarshaller.unmarshal (Unmarshaller.java:715)
>>>>  ... 97 more
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe from this list, please visit:
>>>
>>>    http://xircles.codehaus.org/manage_email
>>>
>>>
>>>
>>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>   http://xircles.codehaus.org/manage_email
>
>
>
>

--
Sent from the Castor - User mailing list archive at Nabble.com.


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

  http://xircles.codehaus.org/manage_email


©2008 junlu.com - Jax Systems, LLC, U.S.A.