A hned si aj odpoviem: staci presunut deklaraciu adapteru na uroven packagu.


--- On Tue, 4/21/09, Radovana Straube <[email protected]> wrote:

> From: Radovana Straube <[email protected]>
> Subject: JAXB, XMLAdapter a primitivny typ
> To: [email protected]
> Date: Tuesday, April 21, 2009, 12:02 PM
> Dobry den,
> 
> mam XML-data s elementami typu:
> <odpoved1>j</odpoved1>
> <odpoved2>j</odpoved2>
> j = ano (Ja)
> n = nie (Nein)
> a potrebujem pouzit unmarshalling, ktory mi tieto stringy
> prevedie na booleany. XmlAdapter som uz parkrat uspesne
> pouzila pri konvertovani stringov na stringy, ale konverziu
> boolean-string neviem rozchodit (autoboxing by mal snad
> fungovat).
> 
> public class BooleanAdapter extends XmlAdapter<String,
> Boolean> {
> 
>     @Override
>     public Boolean unmarshal(String _sValue) {
>         boolean value = BooleanType.YES.equals(_sValue);
>         return new Boolean(value);
>     }
>     
>     @Override
>     public String marshal(Boolean _value){
>         if (_value) {
>             return BooleanType.YES.value;
>         } else {
>             return BooleanType.NO.value;
>         }
>     }   
> }
> 
> 
> @XmlRootElement
> @XmlAccessorType(XmlAccessType.FIELD)
> public class Zeichen {
> 
>     @XmlJavaTypeAdapter(BooleanAdapter.class)
>     @XmlElement(name="faeulnis")
>     private boolean faeulnis;
>     
>     public boolean isFaeulnis() {
>         return faeulnis;
>     }
>         
>     public void setFaeulnis(boolean faeulnis) {
>         this.faeulnis = faeulnis;
>     }
> ....
> 
> Pri spusteni dostanem nasledovnu chybu:
> com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1
> counts of IllegalAnnotationExceptions
> Adapter
> de.bolsys.stala.mortality.data.model.adapter.BooleanAdapter
> is not applicable to the field type boolean. 
>         this problem is related to the following location:
>                 at
> @javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter(type=class
> javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter$DEFAULT,
> value=class
> de.bolsys.stala.mortality.data.model.adapter.BooleanAdapter)
>                 at private boolean
> de.bolsys.stala.mortality.data.model.Zeichen.faeulnis
> 
> Nasla som na Internete, ze aj primitivne typy by mali
> fungovat ale popisane riesenie mi bohuzial nefungovalo.
> Vedel by mi prosim nieto poradit ako na to?
> 
> Dakujem
> Radovana Straube


      

Odpovedet emailem