Why not @GET Customer identity() { return this; } ?
Romain Manni-Bucau
Twitter: @rmannibucau
Blog: http://rmannibucau.wordpress.com/
LinkedIn: http://fr.linkedin.com/in/rmannibucau
Github: https://github.com/rmannibucau2014-10-30 8:52 GMT+01:00 Alex Soto <[email protected]>: > Ok then subresources are not as magical as I thought. I mean I would like > to be able to do something like. /customer/12 and return whole customer, > but for example using /customer/12/address and returns the address only. > But the key point here is that I would be able to use the same ShoppingCard > endpoint. But if I cannot add a @GET on shoppingcart, then this won't work. > > Ok thanks for the clarification. > > 2014-10-29 16:38 GMT+01:00 Romain Manni-Bucau <[email protected]>: > >> you have @GET on shoppingcart so Customer is not a sub resource >> >> Side note: some help can be accessed using logs at fine level of >> org.apache.cxf.jaxrs.utils.JAXRSUtils logger >> Romain Manni-Bucau >> Twitter: @rmannibucau >> Blog: http://rmannibucau.wordpress.com/ >> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> Github: https://github.com/rmannibucau >> >> >> >> 2014-10-29 16:23 GMT+01:00 Alex Soto <[email protected]>: >> > https://github.com/maggandalf/jaxrssubresource >> > >> > 2014-10-29 16:15 GMT+01:00 Alex Soto <[email protected]>: >> > >> >> Yes it is there only in one of my test trying to see if setting a known >> >> content type make things better, >> >> >> >> 2014-10-29 16:11 GMT+01:00 Romain Manni-Bucau < >> [email protected]>: >> >> >> >>> why @XmlRootElement? IMHO Customer shouldn't be a jaxb object >> >>> >> >>> if you manage to share a project @github we could dig into it >> >>> Romain Manni-Bucau >> >>> Twitter: @rmannibucau >> >>> Blog: http://rmannibucau.wordpress.com/ >> >>> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> >>> Github: https://github.com/rmannibucau >> >>> >> >>> >> >>> >> >>> 2014-10-29 16:06 GMT+01:00 Alex Soto <[email protected]>: >> >>> > Hi again I am trying really simple example and it don't work. I am >> not >> >>> sure >> >>> > if it is because of something related in cxf or something that I am >> >>> doing >> >>> > wrong (but currently I am copying the example from oracle >> >>> documentation). >> >>> > Let me paste the classes: >> >>> > >> >>> > @Path("/") >> >>> > public class ShoppingCart { >> >>> > >> >>> > @Path("/customers/{id}") >> >>> > @GET >> >>> > @Produces(MediaType.APPLICATION_XML) >> >>> > public Customer get(@PathParam("id") String id) { >> >>> > Customer customer = new Customer(); >> >>> > customer.setAddress("a"); >> >>> > customer.setId(id); >> >>> > return customer; >> >>> > } >> >>> > } >> >>> > >> >>> > and >> >>> > >> >>> > @XmlRootElement >> >>> > public class Customer { >> >>> > >> >>> > private String id; >> >>> > private String address; >> >>> > public String getId() { >> >>> > return id; >> >>> > } >> >>> > @Path("/address") >> >>> > @Produces(MediaType.TEXT_PLAIN) >> >>> > public String getAddress() { >> >>> > return address; >> >>> > } >> >>> > public void setId(String id) { >> >>> > this.id = id; >> >>> > } >> >>> > public void setAddress(String address) { >> >>> > this.address = address; >> >>> > } >> >>> > } >> >>> > >> >>> > If I navigate to /customers/12/address it didn't work, an exception >> is >> >>> > thrown that endpoint is not found: >> >>> > >> >>> > WARNING: No operation matching request path >> >>> > "/javaeemv3/customers/1/address" is found, Relative Path: >> >>> > /customers/1/address, HTTP Method: GET, ContentType: */*, Accept: >> >>> > >> >>> >> text/html,application/xhtml+xml,image/webp,application/xml;q=0.9,*/*;q=0.8,. >> >>> > Please enable FINE/TRACE log level for more details. >> >>> > Oct 29, 2014 4:00:11 PM >> >>> > org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper toResponse >> >>> > WARNING: javax.ws.rs.WebApplicationException >> >>> > at >> >>> > >> >>> >> org.apache.cxf.jaxrs.utils.JAXRSUtils.findTargetMethod(JAXRSUtils.java:415) >> >>> > >> >>> > Don't know exactly if I am doing something wrong (but at least it >> seems >> >>> > that reading the specification it should work. >> >>> > >> >>> > Alex. >> >>> > >> >>> > 2014-10-29 15:08 GMT+01:00 Alex Soto <[email protected]>: >> >>> > >> >>> >> Ok so providing an Applicatiom makes that scanning process do not >> scan >> >>> >> resources and subresources. Cool. Thanks. >> >>> >> >> >>> >> 2014-10-29 15:04 GMT+01:00 Romain Manni-Bucau < >> >>> [email protected]>: >> >>> >> >> >>> >>> normally you don't let sub resources to be deployed providing an >> >>> >>> Application. >> >>> >>> Romain Manni-Bucau >> >>> >>> Twitter: @rmannibucau >> >>> >>> Blog: http://rmannibucau.wordpress.com/ >> >>> >>> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> >>> >>> Github: https://github.com/rmannibucau >> >>> >>> >> >>> >>> >> >>> >>> >> >>> >>> 2014-10-29 15:00 GMT+01:00 Alex Soto <[email protected]>: >> >>> >>> > so how can I create a real subresource then? Ok just using @Path >> >>> without >> >>> >>> > Http method, but then how to differentiate if subresource should >> be >> >>> for >> >>> >>> a >> >>> >>> > post or for a get? >> >>> >>> > >> >>> >>> > 2014-10-29 14:22 GMT+01:00 Romain Manni-Bucau < >> >>> >>> [email protected]>: >> >>> >>> > >> >>> >>> >> Hi >> >>> >>> >> >> >>> >>> >> yes but no :p >> >>> >>> >> >> >>> >>> >> in details: we deploy classes with only method @Path (no class >> >>> @path) >> >>> >>> >> as endpoint by default (ie you use scanning) cause users do it >> >>> (comes >> >>> >>> >> from spring I think). >> >>> >>> >> Romain Manni-Bucau >> >>> >>> >> Twitter: @rmannibucau >> >>> >>> >> Blog: http://rmannibucau.wordpress.com/ >> >>> >>> >> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> >>> >>> >> Github: https://github.com/rmannibucau >> >>> >>> >> >> >>> >>> >> >> >>> >>> >> >> >>> >>> >> 2014-10-29 14:09 GMT+01:00 Alex Soto <[email protected]>: >> >>> >>> >> > Hi guys, >> >>> >>> >> > Currently I am developing some jax-rs endpoints with Apache >> TomEE >> >>> >>> 1.7.1. >> >>> >>> >> I >> >>> >>> >> > am trying to develop some subresources, but there is something >> >>> that >> >>> >>> >> > confuses me: >> >>> >>> >> > >> >>> >>> >> > Reading some documentation in summary says that your >> subresource >> >>> >>> should >> >>> >>> >> not >> >>> >>> >> > be annotated with @Path annotation and they gives you next >> >>> example: >> >>> >>> >> > >> >>> >>> >> > // Subresource class >> >>> >>> >> > public class Employee { >> >>> >>> >> > >> >>> >>> >> > // Subresource method: returns the employee's last name >> >>> >>> >> > @GET >> >>> >>> >> > @Path("/lastname") >> >>> >>> >> > public String getEmployeeLastName() { >> >>> >>> >> > ... >> >>> >>> >> > return lastName >> >>> >>> >> > } >> >>> >>> >> > } >> >>> >>> >> > >> >>> >>> >> > In theory it should be a subresource, but when I deploy this >> in >> >>> >>> TomEE I >> >>> >>> >> can >> >>> >>> >> > access to this subresource directly from path provided in each >> >>> >>> method (in >> >>> >>> >> > previous case localhost:8080/app/lastname), but my question is >> >>> that >> >>> >>> if it >> >>> >>> >> > is a subresource, it should not be accessed directly from >> >>> browser but >> >>> >>> >> from >> >>> >>> >> > another resource right? So for example it should be valid >> >>> accessing >> >>> >>> from >> >>> >>> >> > localhost:8080/app/employee/lastname >> >>> >>> >> > >> >>> >>> >> > You can see the example here >> >>> >>> >> > http://docs.oracle.com/javaee/6/tutorial/doc/gknav.html >> >>> >>> >> > >> >>> >>> >> > Alex. >> >>> >>> >> > >> >>> >>> >> > >> >>> >>> >> > >> >>> >>> >> > -- >> >>> >>> >> > +----------------------------------------------------------+ >> >>> >>> >> > Alex Soto Bueno >> >>> >>> >> > www.lordofthejars.com >> >>> >>> >> > +----------------------------------------------------------+ >> >>> >>> >> >> >>> >>> > >> >>> >>> > >> >>> >>> > >> >>> >>> > -- >> >>> >>> > +----------------------------------------------------------+ >> >>> >>> > Alex Soto Bueno - Computer Engineer >> >>> >>> > www.lordofthejars.com >> >>> >>> > +----------------------------------------------------------+ >> >>> >>> >> >>> >> >> >>> >> >> >>> >> >> >>> >> -- >> >>> >> +----------------------------------------------------------+ >> >>> >> Alex Soto Bueno - Computer Engineer >> >>> >> www.lordofthejars.com >> >>> >> +----------------------------------------------------------+ >> >>> >> >> >>> > >> >>> > >> >>> > >> >>> > -- >> >>> > +----------------------------------------------------------+ >> >>> > Alex Soto Bueno - Computer Engineer >> >>> > www.lordofthejars.com >> >>> > +----------------------------------------------------------+ >> >>> >> >> >> >> >> >> >> >> -- >> >> +----------------------------------------------------------+ >> >> Alex Soto Bueno - Computer Engineer >> >> www.lordofthejars.com >> >> +----------------------------------------------------------+ >> >> >> > >> > >> > >> > -- >> > +----------------------------------------------------------+ >> > Alex Soto Bueno - Computer Engineer >> > www.lordofthejars.com >> > +----------------------------------------------------------+ >> > > > > -- > +----------------------------------------------------------+ > Alex Soto Bueno - Computer Engineer > www.lordofthejars.com > +----------------------------------------------------------+
