cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sergey Beryozkin <sberyoz...@gmail.com>
Subject Re: Services list page not shown (404)
Date Wed, 10 Nov 2010 12:56:09 GMT
I'm working on something else but I can also see that

a request like "http://mypc:9000?_wadl" resulgts in 404 while

"http://mypc:9000/?_wadl"

works, with the trailing slash making a difference (only as far as the wadl
retrieval is concerned), so a bit more work is needed here...

cheers, Sergey

On Wed, Nov 10, 2010 at 11:43 AM, Sergey Beryozkin <sberyozkin@gmail.com>wrote:

> 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 <jherry22@gmail.com> 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 <sberyozkin@gmail.com>
>>
>> > 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 <jherry22@gmail.com>
>> 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 <sberyozkin@gmail.com>
>> > >
>> > > > 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 <jherry22@gmail.com>
>> > > 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?
>> > > > >
>> > > >
>> > >
>> >
>>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message