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

Reply via email to