OK, I get it now: I have to get the content via a 'data' parameter, not by 
calling getEntity()  :-)

It now *almost* works perfectly.

I.e., my update method is called, I get the right data, I set the return status 
to 'SUCCESS_OK' and I'm done. But the client gets a 'no content' code.

I'm calling:

Response response = getResponse();
response.setStatus ( Status.SUCCESS_OK, "Test" );

Is this not the proper way to do it?

Thanks Fabian!

> Euh... I'm sorry but then the problem must be somewhere else.
> 
> I use @Put all the time, handling the different media types myself, and I
> only got HTTP 415 when my own-written code explicitly threw
> ResourceException(Status.CLIENT_ERROR_UNSUPPORTED_MEDIA_TYPE).
> 
> can you please try this on your ServerResource (or extending) class:
> 
> @Put
> public void handlePut(Representation data) {
> if (data == null) {
>   throw new ResourceException(Status.CLIENT_ERROR_BAD_REQUEST);
> } else {
>    getLogger().info(String.format("Got PUT with media type %s",
> data.getMediaType()));
> }
> }
> 
> a PUT with no data in the request body should give you HTTP 400
> a PUT with some data in the request body should give you a log entry with
> the request body media type.
> 
> If that still does not work try adding the following method to that class:
> 
> @Override
> protected void initResource() {
>   getVariants().add(MediaType.ALL); // I never had to use this, IIRC this
> is */*
> }
> 
> Good luck!
> 
> 
> 
> On Mon, Jul 14, 2014 at 3:03 PM, Frank Kolnick <reallyfrank at hotmail dot 
> com>
> wrote:
> 
> > Unfortunately, that does not appear to be the case. I.e., that's where I
> > started, and was getting the error. I tried the variations in order to fix
> > the problem, so far without success.
> >
> > > @Put
> > >
> > > should be enough to tell Restlet to accept anything
> > > El jul 14, 2014 1:16 PM, "Frank Kolnick" <reallyfrank at hotmail dot
> > com> escribió:
> > >
> > > > I have tried sending (PUT) with a content-type of "text/plain"
> > (verified
> > > > via Fiddler). On the server side, I have tried:
> > > >
> > > > @Put("text/plain")
> > > >
> > > > @Put("text")
> > > >
> > > > @Put("plain")
> > > >
> > > >
> > > > I still get the media error in all cases.
> > > >
> > > > What am I doing wrong? Can I tell Restlet to accept *anything*?
> > > >
> > > > ------------------------------------------------------
> > > >
> > > >
> > http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=3085086
> > > >
> >
> > ------------------------------------------------------
> >
> > http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=3085090
> >
> 
> 
> 
> -- 
> Fabián Mandelbaum
> IS Engineer

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=3085217

Reply via email to