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