Hi Thierry, Do you mind posting again in English so everyone can follow and give help? This mailing list is English speaking only...
Best regards, Jerome -- http://www.restlet.com http://twitter.com/#!/jlouvel -----Message d'origine----- De : Thierry LAU [mailto:la...@sfeir.com] Envoyé : mercredi 18 juillet 2012 22:00 À : discuss@restlet.tigris.org Objet : Redirection to do Cross Domain Request Bonjour, Je fais face actuellement à un problème que je vais vous exposer ci-dessous : J'ai : - clientA + serveurA sur http://localhost:8000/ - serveurB sur http://localhost:8080/. serveurB expose des services REST (via Restlet ) qui seront consommés par clientA. Cependant, à cause du problème Same Origine Policy, je ne peux effectuer de requêtes cross domain entre clientA et ServeurB. C'est pour cette raison que j'ai mis en place un serveurA qui fera le proxy entre clientA et serveurB Ce que je tente de faire est de mettre en place Restlet et son mécanisme de Redirect afin que lorsque client A appelle l'url http://localhost:8000/rest/catalog/v1/dogs, l'appel est redirigé vers http://localhost:8080/rest/catalog/v1/dogs Pour cela du coté du serveurA, j'ai @Override public Restlet createInboundRoot() { Redirector redirector = new Redirector(getContext(), "http://localhost:8080/rest/catalog/v1{rr}", Redirector.MODE_SERVER_INBOUND); return redirector; } La trace que j'obtiens est la suivante : 18/07/2012 17:28:27 DEBUG org.restlet - Invalid character detected in URI reference at index '37': "{". It will be automatically encoded. 18/07/2012 17:28:27 INFO org.restlet - Redirecting via server dispatcher to: http://localhost:8080/rest/catalog/v1/dogs 18/07/2012 17:28:27 WARN org.restlet - No next Restlet provided for server redirection to http://localhost:8080/rest/catalog/v1/dogs Jul 18, 2012 5:28:27 PM org.apache.catalina.core.ApplicationContext log INFO: A response with a 200 (Ok) status should have an entity. Make sure that resource "http://localhost:8100/rest/catalog/v1/dogs" returns one or sets the status to 204 (No content). Du coté du serveurB, je n'ai pas de trace. Donc a priori il ne recois pas de requete ? Voici un extrait du contenu du serveurB (Spring 3 + Restlet 2) <code> <bean id="restletApplication" class="org.restlet.Application"> <property name="inboundRoot" ref="defaultRouter" /> </bean> <bean id="defaultRouter" class="org.restlet.ext.spring.SpringRouter"> <property name="attachments"> <map> <entry key="/catalog/v1" value-ref="catalog" /> </map> </property> </bean> <bean id="catalog" class="org.restlet.ext.spring.SpringRouter"> <property name="attachments"> <map> <entry key="/login"> <bean class="org.restlet.ext.spring.SpringFinder"> <lookup-method name="create" bean="loginRestResource" /> </bean> </entry> <entry key="/dogs"> <bean class="org.restlet.ext.spring.SpringFinder"> <lookup-method name="create" bean="dogsRestResource" /> </bean> </entry> <entry key="/dogs/{id}"> <bean class="org.restlet.ext.spring.SpringFinder"> <lookup-method name="create" bean="dogRestResource" /> </bean> </entry> <entry key="/citizens"> <bean class="org.restlet.ext.spring.SpringFinder"> <lookup-method name="create" bean="citizensRestResource" /> </bean> </entry> <entry key="/citizens/{id}"> <bean class="org.restlet.ext.spring.SpringFinder"> <lookup-method name="create" bean="citizenRestResource" /> </bean> </entry> </map> </property> </bean> </code> Ma question est : 1. Est-ce que ca a du sens ce que je tente de faire avec REstlet c'est à dire utiliser les mécanismes de redirection de Restlet pour résoudre les problèmes de requêtage Cross Domain ? 2. Si oui, comment l'implémenter correctement dans mon partie serveurA qui fait office de Proxy. Je vous remercie d'avance de votre retour, Thierry LAU ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2991539 ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2991697