Hi Dinesh, If you use annotated interfaces, you should throw a ResourceException and be able to catch it on the client-side. This works by mapping the exception to an HTTP status back and forth.
Regarding the lacking of invocation of StatusService#getStatus(), I have just fixed it in SVN trunk. Best regards, Jerome -- Restlet ~ Founder and Technical Lead ~ http://www.restlet.org Noelios Technologies ~ http://www.noelios.com -----Message d'origine----- De : Dinesh Pillay [mailto:[email protected]] Envoyé : mercredi 23 juin 2010 08:32 À : [email protected] Objet : Exceptions, StatusService and its usage Hello, I'm using restlet 2.0-SNAPSHOT with the jee and the jaxb extensions. My question pertains to how one must handle exceptions with the restlet API. Consider the following scenario:- 1/ A simple domain object 'Contact'. 2/ A Server Resource 'ContactResource' with a method "public Contact getContact()" and appropriate implementation. 3/ The router is setup to serve Contact's at "/contacts/{id}'. On the client side, the effective code being used is:- ClientResource cr = new ClientResource(base + "/contacts/1"); ContactResource resource = cr.wrap(ContactResource.class); Contact contact = resource.getContact(); The question is, say I tried retrieving "/contacts/2" which does not exist in the contact list, how can I get restlet to throw a particular type of exception (even a subclass of ResourceException) and propogate it to the client? Is this even possible? If I need to use StatusService, how should I use it to return an appropriate Representation given the way the client is invoking the interface method directly and expects a Contact in return? I even tried setting the Status on the server side but was unable to get the same contents on the client side. Is this a bug within the 2.0-SNAPSHOT codebase? Also, when in my custom StatusService, I notice that only getRepresentation is invoked and not getStatus. Moreover, within getRepresentation, the status still does not hold the Throwable cause that I set when I couldn't find the contact. I'm not sure I'm doing this right and hence would appreciate some help. Is there an example anywhere that touches on this topic? The documentation is really sparse and not very navigable. Thanks! - Dinesh. ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2624846 ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2652479

