JAX WS a vlastni schema
Tomas Hubalek
Tomas.Hubalek na onsemi.com
Pondělí Únor 2 10:05:08 CET 2009
OK, diky to vypada zajimave.
Tom
-----Original Message-----
From: konference-bounces na java.cz on behalf of Zdenek Tronicek
Sent: Sun 2/1/2009 20:41
To: konference na java.cz
Subject: RE: JAX WS a vlastni schema
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 <Tomas.Hubalek na onsemi.com>:
> 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: konference-bounces na java.cz on behalf of Zdenek Tronicek
> Sent: Wed 1/28/2009 16:57
> To: konference na java.cz
> 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 <Tomas.Hubalek na onsemi.com>:
>
>> 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: konference-bounces na java.cz [mailto:konference-bounces na java.cz]
>> On
>>> Behalf Of Zdenek Tronicek
>>> Sent: Wednesday, January 28, 2009 2:44 PM
>>> To: konference na java.cz
>>> 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 <Tomas.Hubalek na onsemi.com>:
>>>
>>> > 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
>>> >
>>> >
>>>
>>
>>
>
>
>
>
------------- dal?í ?ást ---------------
HTML p?íloha byla odstran?na...
URL: <http://amaio.cz/pipermail/konference/attachments/20090202/4bde8737/attachment.htm>
Další informace o konferenci Konference