Take je moznost vytvorit jednu GenericBean, ktera bude mit property ze vsech uvazovanych bean s tim, ze u kazde property bude nastaveno, ze je nepovinna (@XmlElement(required = false)).
Nebo bude mit odkazy na beany:

@XmlType
@XmlAccessorType(XmlAccessType.FIELD)
public class GenericBean {

    @XmlElement(required = false)
    BeanOne b1;

    @XmlElement(required = false)
    BeanTwo b2;

    ...
}
Jde o nahradu variantniho zaznamu z Pascalu.

Z.T.
--
Zdenek Tronicek
Department of Computer Science and Engineering
Prague                   tel: +420 2 2435 7410
http://cs.felk.cvut.cz/~tronicek


Cituji Tomas Hubalek <[email protected]>:

Jasne, ta metoda returnMultipleObjects ma nejake parametry na jejichz zaklade se urci instanci jakeho beanu vrati, zcela deterministicky rekneme ze ten parametr je bud string ktery obsahuje jmeno tridy vcetne package nebo java.lang.Class, to jsem zatim neresil + dalsi parametry neco jako idcko apod.

Muzu samozrejme zapojit reflection, nechat si od te metody vracet properties toho beanu jako treba stringove pole nebo mapu nebo neco a pak to zase deserializovat, ale proc to delat, kdyz tohle umi JAXB bez problemu, jen mu dat to XML schema.

Pokud nenajdu nic hezciho, udelam to tak ze do te tridy dogeneruju pred kompilaci (nejakym skriptem) 50x metodu doNothing1(),doNothing2(), kazda vracejici jiny bean. Ale to mi prijde opravdu hnusne...

Tom


-----Original Message-----
From: [email protected] on behalf of Zdenek Tronicek
Sent: Wed 1/28/2009 16:57
To: [email protected]
Subject: RE: JAX WS a vlastni schema

Rad bych Vam neco poradil, ale nemam jasno v tom, co ten "genericky
editor" dela. Metoda returnMultipleObjects nema parametry a vraci
beanu. To znamena, ze vybere tridu, vytvori instanci a tu vrati? Na
zaklade ceho ji vybere? Nebo je to jinak?

Z.T.
--
Zdenek Tronicek
Department of Computer Science and Engineering
Prague                   tel: +420 2 2435 7410
http://cs.felk.cvut.cz/~tronicek


Quoting Tomas Hubalek <[email protected]>:

Ja si samozrejme uvedomuju ze se nejedna o optimalni navrh. Nicmene
pomoci toho schematu je mozne popsat jake objekty muzou prijit, takze to
tak uplne *cokoliv* neni.

Navic JAX/WS navratovy typ Object akceptuje a prezentuje ho jako
xs:anyType s tim ze ho pak marshaluje, pokud podle XML Schema vi jak. A
problem je v tom, ze mu potrebuju podstrcit popis vsech objektu, o
kterych vim ze muze posilat.

Na druhou stranu se mi nechce generovat 50 metod se stejnou signaturou
pro 50 objektu. Jedna se o genericky editor techto beanu a JAX/WS se
vsude v aplikaci pouziva, takze jen pro to, abych dostal "ideove
cistote" a pouzil jen tuhle jednu vec neco jineho, tak to se mi taky
nechce. Nicmene, pokud mi date typ, jak to resit cisteji, sem s tim...

Tom

-----Original Message-----
From: [email protected] [mailto:[email protected]]
On
Behalf Of Zdenek Tronicek
Sent: Wednesday, January 28, 2009 2:44 PM
To: [email protected]
Subject: Re: JAX WS a vlastni schema

Dobry den,

mam poznamku: myslim si, ze byste se mel nejdrive zamyslet nad tim,
zda navratovy typ Object je to prave.
Ve WSDL tak jako tak musite popsat format zpravy, ktera prijde
klientovi. A to by nemelo byt "cokoliv", pokud ma klient tu zpravu
nejak rozumne zpracovat.
Jinymi slovy: pouziti Object je nevhodne. Kdyz zmenite navratovy typ
metody returnMultipleObjects, bude po problemu.

Z.T.
--
Zdenek Tronicek
Department of Computer Science and Engineering
Prague                   tel: +420 2 2435 7410
http://cs.felk.cvut.cz/~tronicek


Quoting Tomas Hubalek <[email protected]>:

> Zdar,
>
>
>
> mam napr. takovouto webovou sluzbu, jejiz metoda vraci vice ruznych
> datovych typu (beanu)
>
>
>
> @WebService
>
> public class MyService {
>
>
>
>     @WebMethod
>
>     Object returnMultipleObjects() {
>
>         ...
>
>     }
>
>
>
>     @WebMethod
>
>     MyObject doNothing() {
>
>         ...
>
>     }
>
> }
>
>
>
> JAX WS mi vygeneruje WSDL a XML schema, kde je MyObject jako complex
> type a tim padem metoda returnMultipleObjects muze vracet i
MyObject.
>
>
>
> Kdyz ale metodu doNothing() smazu, tak v tom XML schema MyObject
neni
> jako complex type a returnMultipleObject tento bean neumi vracet
(resp.
> Marschaller nevi, jak ma MyObject marshallovat)
>
>
>
> Otazka zni:
>
> - je mozne nekde specifikovat XML schema s objekty (at uz jako
parametr
> wsgen nebo nejakou anotaci nekde), ktere je mozne vracet metodou
> returnMultipleObjects?
>
>
>
> Dik moc
>
> Tom
>
>









Odpovedet emailem