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
>
>