OK, diky to vypada zajimave. Tom
-----Original Message----- From: [email protected] on behalf of Zdenek Tronicek Sent: Sun 2/1/2009 20:41 To: [email protected] 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 <[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 >>> > >>> > >>> >> >> > > > >
