Hi, >But It is true that it does not have any method for GET, with annotations or not. by default, ServerResource support conditions (see [1] for exemple), which requires to implement the GET. I think you can override the "doInit" method and call "this.setConditional(false);".
best regards, Thierry Boileau [1] http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24 > Hi Thierry, > thanks for your quick reply, > Thierry Boileau a écrit : > >> Hello Laurent, >> >> the router class which is in charge to dispatch a call between the >> declared routes relies on a parameter called "routingMode". It can take >> on of these values: best, first, last, custom, next and random. >> By default, its routing mode is "best". Each declared route is defined a >> score, according to the path of the incoming request, and the length of >> the recognized characters. >> In your case, both "/users/{id}" and "/users/identification-keys" give >> the same score because they catch the same number of cracters, thus the >> first declared route giving the best score is chosen. >> So I'm enclined to say that the declaration order is not neutral using >> the default routing mode, and thus it is preferable to declared the >> routes without pattern before the ones using patterns (such as /users/{id}). >> > Ok, all clear, it is what I was guessing. > >> We may enhance the "best" algorithm by promoting the routes having the >> best score but without a pattern. This question is open. >> >> Regarding the 405 response, I suppose the "UserResource.class " does not >> "implement the GET method" ie does not use the @Get annotation nor >> implement the ServerResource#get(Variant) method, nor the >> ServerResource#get() method . Could you tell us more about this point? >> > I am trying to POST to the resource '/users/identification-keys', and > the associated class have method with annotations to handle post : > @Post > public Representation createIdentificationKey(Representation > entity) throws ResourceException {...} > But It is true that it does not have any method for GET, with > annotations or not. > > Regards, > Laurent. > >> >>> Another question, should I attach route using a trailing slash in URI, or >>> not, or should I declare two routes ? >>> >> I think that attaching "/users" works for both cases (requesting "/users" >> and "/users/"), so to my taste, it is useless to declare the "/users/" route. >> Some purists can consider that "/users/" expresses that this resource is a >> kind of directory, a container of other resources. >> >> best regards, >> Thierry Boileau >> >> >>> Hello, >>> I have a question about route and router. >>> I have the following router >>> final Router router = new Router(getContext()); >>> router.attach("/users", UsersResource.class); >>> router.attach("/users/{id}", UserResource.class); >>> router.attach("/users/identification-keys", >>> IdentificationKeysResource.class); >>> >>> return router; >>> >>> If I go to http://localhost/users/identification-keys I got a 405 error >>> in return >>> If I declare the last line first, like this >>> >>> final Router router = new Router(getContext()); >>> router.attach("/users/identification-keys", >>> IdentificationKeysResource.class); >>> router.attach("/users", UsersResource.class); >>> router.attach("/users/{id}", UserResource.class); >>> return router; >>> >>> then it works. >>> I tried to change behavior of router using >>> router.setDefaultMatchingMode(Template.MODE_EQUALS); >>> but nothing seems to changed. >>> Is it possibly something not correct in my resource class ? >>> Right now, it's ok for me to declare in the second way my resource, but >>> I think it should work also in the first way, >>> as shown by the tutorial >>> http://www.restlet.org/documentation/2.0/tutorial#part12 >>> >>> Another question, should I attach route using a trailing slash in URI, >>> or not, or should I declare two routes ? >>> router.attach("/users", UsersResource.class); >>> router.attach("/users/", UsersResource.class); >>> Regards, >>> Laurent. >>> >>> P.S: using restlet 2.0 M4 >>> >>> >> ------------------------------------------------------ >> http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2382106 >> >> >> ------------------------------------------------------------------------------------------------------------------- >> CONFIDENTIALITY NOTICE: This e-mail and any files attached may contain >> confidential and proprietary information of Alcatel-Lucent and/or its >> affiliated entities. Access by the intended recipient only is authorized. >> Any liability arising from any party acting, or refraining from acting, on >> any information contained in this e-mail is hereby excluded. If you are not >> the intended recipient, please notify the sender immediately, destroy the >> original transmission and its attachments and do not disclose the contents >> to any other person, use it for any purpose, or store or copy the >> information in any medium. Copyright in this e-mail and any attachments >> belongs to Alcatel-Lucent and/or its affiliated entities. >> >> >> > > > ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2382350

