cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dan Diephouse" <...@envoisolutions.com>
Subject Re: Newby REST question
Date Tue, 29 May 2007 17:38:12 GMT
OK, I figured this out. You're missing a @WebService annotation on your
WidgetCatalog class. If you don't want to use any annotations, try using the
ReflectionServiceFactoryBean. (not sure why there isn't an error being
thrown, I'll see if I can fix that).

Also, your removeWidgets(...) method seems to cause problems for the http
binding because currently it assumes that remove/delete methods are
singular, not plular (i.e. deleteWidget). I would suggest adding an
@HttpResource for that method. I'll see if I can get it sorted inside the
HTTP binding, but I'm afraid it will depend on us detecting whether or not a
word is singular or plural to begin with - which is kind of hard :-).

Regards,
- Dan

On 5/29/07, Johnson, Eric <Eric.Johnson@iona.com> wrote:
>
> As a test to make sure I didn't screw up stuff when I copied the
> restful_http_binding demo as a starting point, I stripped out the
> annotations, as well Web services endpoint, from the actual demo and got
> the same result.
>
> Putting the @HttpResource on the interface had no effect.
>
>
>
> > -----Original Message-----
> > From: Dan Diephouse [mailto:dan@envoisolutions.com]
> > Sent: Friday, May 25, 2007 1:35 PM
> > To: cxf-dev@incubator.apache.org
> > Subject: Re: Newby REST question
> >
> > You shouldn't need any annotations for the convention based
> > mode to work.
> > I'm not sure why Eric's example isn't working actually, so it
> > looks like a bug to me. Which is kind of odd because I have a
> > very similar unit test to what you've written. I'll have to
> > take a more in depth look and get back to you.
> >
> > - Dan
> >
> > On 5/24/07, Freeman Fang <freeman.fang@iona.com> wrote:
> > >
> > > Hi Eric,
> > >
> > > You need add @HttpResource in WidgetCatalog interface, like
> > we do in
> > > CustomerService of restful demo.
> > >
> > > Thanks very much
> > >
> > > Freeman
> > >
> > >
> > > Johnson, Eric wrote:
> > > > I've got a class:
> > > > package com.acme.customer;
> > > >
> > > > public interface WidgetCatalog
> > > > {
> > > >   Widgets getWidgets();
> > > >
> > > >   Widget getWidget(long id);
> > > >
> > > >   void addWidget(Widget widget);
> > > >
> > > >   void updateWidget(Widget w);
> > > >
> > > >   int removeWidgets(String type, int num);
> > > >
> > > >   void deleteWidget(Widget widget);
> > > > }
> > > >
> > > > That I want to get working using the convention based
> > REST stuff, so
> > > > I publish it like this:
> > > >
> > > >        JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
> > > >         sf.setServiceClass(WidgetCatalog.class);
> > > >
> > > >         sf.setBindingId(HttpBindingFactory.HTTP_BINDING_ID);
> > > >         sf.setAddress("http://localhost:9000/xml/");
> > > >
> > > >         WidgetCatalogImpl bs = new WidgetCatalogImpl();
> > > >         sf.getServiceFactory().setInvoker(new BeanInvoker(bs));
> > > >
> > > >         sf.getServiceFactory().setWrapped(true);
> > > >
> > > >         sf.create();
> > > >
> > > > When I try to access the getWidgets() method by going to
> > > > http://localhost:9000/xml/widgets I get "Invalid URL/Verb
> > combination.
> > > > Verb: GET Path: /widgets."
> > > >
> > > > What did I do wrong? I basically copied most of the restfull_http
> > > > demo and removed the annotations.
> > > >
> > > >
> > >
> > >
> >
> >
> > --
> > Dan Diephouse
> > Envoi Solutions
> > http://envoisolutions.com | http://netzooid.com/blog
> >
>



-- 
Dan Diephouse
Envoi Solutions
http://envoisolutions.com | http://netzooid.com/blog

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