I've tried with the @Get

   @Get("json")
   public JsonRepresentation represent() {
      return new JsonRepresentation(new JSONArray(find()));
   }

   public List find() {
      return getApplication().getSubscriptionService().findTenants();
   }

without the @Get on the second method, works:

clientResource.get(JsonRepresentation.class);

If I add the annotation, the request arrives to find() method, and fails to
return a Json.


On Wed, Mar 23, 2011 at 11:23 AM, Thierry Boileau <
thierry.boil...@noelios.com> wrote:

> Hello Daniele,
>
>
> >What if the parameter is a Map or a generic POJO?
> the parameters of the annotation deal with the content negotiation feature,
> that is to say a choice made according to the media type of the sent entity,
> the parameter type of the Java method, and the conversion capability of the
> application (in a few words : the available converters).
> If the representation of the POJO or MAP is available in JSON format, the
> @Post("json") methoed will be chosen.
>
>
> > If I remove the annotation from the first method, everything works.
> > There is a notation to say to the first method he is waiting for a String
> class?
> As there is competition between converters, I guess the default converter
> should be chosen only if any other available converter does not match (see
> this RFE http://restlet.tigris.org/issues/show_bug.cgi?id=1093).
> As a workaround, or as a matter of test, can you test to put the
> @Post("json") method before the other one in the code of your class?
>
> Best regards,
> Thierry Boileau
>
>
>
> that works, I did not think about it, even if it's in the book :)
>> but is not documented in the API.
>>
>> What if the parameter is a Map or a generic POJO?
>>
>>
>> On Wed, Mar 23, 2011 at 12:07 AM, Fabian Mandelbaum <
>> fmandelb...@gmail.com> wrote:
>>
>>> Hello Daniele,
>>>
>>> @Post("txt")
>>>
>>> should accept strings. Test it though ;-)
>>>
>>> On Tue, Mar 22, 2011 at 1:07 PM, Daniele Dellafiore <ilde...@gmail.com>
>>> wrote:
>>> > Hi.
>>> >
>>> > I built a server resource with a
>>> >
>>> >    @Post
>>> >    public void request(final String email) { ....}
>>> >
>>> > that works great with the restlet client. With a real form I have two
>>> > options: json/xml, say json, or post parameters.
>>> >
>>> > Json, I just add
>>> >
>>> >    @Post("json")
>>> >    public void xml(final Representation representation) { ...}
>>> >
>>> > in which parse the email from the json and call the request(String
>>> email) so
>>> > I do not duplicate code.
>>> > There is a problem here: the application/json  post does not end in the
>>> > @Post("json"), everything falls in the first @Post.
>>> > If I remove the annotation from the first method, everything works.
>>> >
>>> > There is a notation to say to the first method he is waiting for a
>>> String
>>> > class?
>>> >
>>> > Thanks.
>>> > --
>>> > Daniele Dellafiore
>>> > http://danieledellafiore.net
>>> >
>>>
>>>
>>>
>>> --
>>> Fabián Mandelbaum
>>> IS Engineer
>>>
>>> ------------------------------------------------------
>>>
>>> http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2713282
>>>
>>
>>
>

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

Reply via email to