Hi On Mon, Aug 22, 2011 at 6:43 PM, Timothy Paul Hanna <[email protected]> wrote: > It actually isn't hard to fix. I am using the @ElementClass annotation to > show that the service returns elements of that. And your WADLGenerator > already handles that. The issue is that > ResourceUtils.getAllRequestResponseTypes doesn't include the SomeObject in > the list returned. I overrode the WadlGenerator to then include the element > in the list and it worked fine. Does that help? > What exactly did work ? Suppose a method returns List<SomeObject> and WADLGenerator has been fixed to include SomeObject in the created JAXBContext. Now, the inclusion of SomeObject should result in the WADL grammar section containing a related xsd element declaration. Do you see a *link* from the WADL response element's (representing the resource method returning List<SomeObject>) representation to a schema element ?
Cheers, Sergey > -----Original Message----- > From: Sergey Beryozkin [mailto:[email protected]] > Sent: Monday, August 22, 2011 3:07 AM > To: [email protected] > Subject: Re: Problem with WADL generation and returning a List of objects > > Hiin > > The reason SomeObject from List<SomeObject> is not currently checked > in for the purpose of > the WADL grammar generation is that a SomeObject schema element > instance can not be used to > describe the actual value represented by List<SomeObject>. > > For example, assuming SomeObject can be represented as > <SomeObject/>, List<SomeObject> (say with a single element) will be > represented by default as > <SomeObjects><SomeObject/></SomeObjects>. > > I don't know at the moment how to get a schema element which would describe > <SomeObjects><SomeObject/></SomeObjects> > > generated from List<SomeObject>...SomeObjects is a default wrapper but > alternative names can be configured... > > Thus even if we generate a schema SomeObject element, > we won't be able to link to it from a given WADL response or request > representation which is supposed to be List<SomeObject>. > > If it's feasible then I can get it fixed, just not sure how... > In meantime a workaround is to use a collection bean, or configure CXF > WADL generator with a reference to the custom schema or even WADL > instance > > Cheers, Sergey > On Thu, Aug 18, 2011 at 9:55 PM, Daniel Kulp <[email protected]> wrote: >> >> This definitely sounds like a bug. Can you log an issue (and maybe attach a >> patch?) >> >> Thanks! >> Dan >> >> >> On Thursday, August 18, 2011 2:42:42 PM Timothy Paul Hanna wrote: >>> I have a service that returns a list of objects using application/xml. The >>> WADL doesn't display these object in the grammar nor connects them to the >>> operations response. >>> >>> While debugging in CXF it seems the problem is in >>> ResourceUtils.getAllRequestResponseTypes The problem is the this method >>> doesn't include the parameterized objects in Lists on return methods. For >>> example if I have the service below >>> >>> public List<SomeObject> getSomeObjects() >>> >>> SomeObject will not be included as a JAXB object even if I have >>> @XMLRootElement declared. It will be included if I have any of the other >>> services >>> >>> public void storSomeObjects(List<SomeObject>) >>> >>> public SomeObject getSomeObject(Long id) >>> >>> If I have either of the two above methods in my service, then SomeObject >>> will be picked up as a JAXB object and then my WADL will display my >>> "getSomeObjects"definition correctly. >>> >>> This doesn't seem to be consistent. What was the intent of not handling >>> Lists as a return type? >>> >>> Tim >>> >>> >>> NOTICE: This email message is for the sole use of the intended recipient(s) >>> and may contain confidential and privileged information. Any unauthorized >>> review, use, disclosure or distribution is prohibited. If you are not the >>> intended recipient, please contact the sender by reply email and destroy >>> all copies of the original message. >> -- >> Daniel Kulp >> [email protected] >> http://dankulp.com/blog >> Talend - http://www.talend.com >> > > > > -- > Sergey Beryozkin > > http://sberyozkin.blogspot.com > Talend - http://www.talend.com > > > NOTICE: This email message is for the sole use of the intended recipient(s) > and may contain confidential and privileged information. Any unauthorized > review, use, disclosure or distribution is prohibited. If you are not the > intended recipient, please contact the sender by reply email and destroy all > copies of the original message. > > > -- Sergey Beryozkin http://sberyozkin.blogspot.com Talend - http://www.talend.com
