Hi I'm a bit confused, obviously "http://mypc:9000/api/service?_wadl" was just an example you gave me...
For a start, the fact that "http://mypc:9000?_wadl" is not giving you a wadl instance describing all the root resources is a bug most likely to do with the fact the embedded Jetty is used - I'll verify. You may actually want to try "http://mypc:9000/?_wadl", note the trailing forward slash. I've fixed an http-transport level bug a couple of days ago to do with some ambiguity in cases with trailing forward slashes, only exposed when certain address combinations were used. Now, I'm not exactly sure about say /catalog/CatalogService (class-level: "/api/v1.0/catalog", function-level: "/{id}" and "/{id}/delete" and "/{id}/add") what is "/catalog/CatalogService" ? it appears that all the root resources start from "/api/" ? It is much simpler to understand what is going on when a sample resource class with relevant bits is posted... Besides that, the only I can comment about is that unless you have to use POST to indicate the deletions and additions (ex, it is not easy to specify DELETE on the client side) then you may want to remove /delete and /add bits and use @DELETE and @POST : @GET @PATH("{id}") SomeBean get(...) {} @POST @PATH("{id}") void add(...) {} @DELETE @PATH("{id}") void delete(...) {} also note you use a ?_method=DELETE if no explicit DELETE verb can be set on the client side cheers, Sergey On Wed, Nov 10, 2010 at 11:21 AM, Jérôme Herry <[email protected]> wrote: > No, I do sf.setAddress("http://mypc:9000"); > Here is what I have, maybe it's not the good way: > /api/VersionService (class-level: "/api/versions", function-level: "/") > /login/LoginService (class-level: "/api/v1.0/login", function-level: "/") > /catalog/CatalogService (class-level: "/api/v1.0/catalog", function-level: > "/{id}" and "/{id}/delete" and "/{id}/add") > > What do you think? > > 2010/11/10 Sergey Beryozkin <[email protected]> > > > Were is "/api/" coming from, is it actually > > > > sf.setAddress("http://mypc:9000/api"); > > > > that you do ? > > > > And one of the root resources has a class-level @Path with the value > > "/myservice" ? > > > > Given the code you shown it appears you have a single endpoint with two > > root > > resource classes (VersionService and LoginService) as opposed to two > > endpoints... > > > > "http://mypc:9000/api?_wadl" should give you a WADL with both root > > resources > > described. > > > > I definitely have a test case confirming it is the case ()with slightly > > different addresses), but may be in this case, with no servlet transport > > being involved, this does not work as expected...I'll have to verify > > > > cheers, Sergey > > > > > > On Wed, Nov 10, 2010 at 10:19 AM, Jérôme Herry <[email protected]> > wrote: > > > > > I already tried but I also have a 404. It works if I do it on an > > endpoint, > > > e.g. http://mypc:9000/api/myservice?_wadl > > > but I would like to have a WADL with all available services. > > > Maybe I have to add a provider but I don't know how and which one. > > > > > > 2010/11/10 Sergey Beryozkin <[email protected]> > > > > > > > Hi > > > > > > > > I think in this case the servlet transport is bypassed and no handler > > is > > > > available for "/services". > > > > "http://mypc:9000/?_wadl" should do it in this case. > > > > > > > > cheers, Sergey > > > > > > > > On Wed, Nov 10, 2010 at 10:00 AM, Jérôme Herry <[email protected]> > > > wrote: > > > > > > > > > Hi, I'm using CXF running a jetty server like this: > > > > > > > > > > JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean(); > > > > > List rps = new Vector(); > > > > > rps.add(new SingletonResourceProvider(new VersionService())); > > > > > rps.add(new SingletonResourceProvider(new LoginService())); > > > > > ... > > > > > sf.setResourceProviders(rps); > > > > > > > > > > List schemas = new ArrayList(); > > > > > schemas.add("classpath:/versioning/versions.xsd"); > > > > > ... > > > > > sf.setSchemaLocations(schemas); > > > > > > > > > > sf.setAddress("http://mypc:9000"); > > > > > > > > > sf.getInInterceptors().add(AuthenticationInterceptor.getInstance()); > > > > > sf.getOutInterceptors().add(OutInterceptor.getInstance()); > > > > > > > > > > sf.setStaticSubresourceResolution(true); > > > > > sf.create(); > > > > > > > > > > When I go to http://mypc:9000/services I have a 404 error. I would > > > like > > > > to > > > > > have the WADL with all my REST services. How can I do it? > > > > > > > > > > > > > > >
