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

Reply via email to