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

Reply via email to