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