title: reverse proxy on AppEngine (restlet 2.1) : 404 - client protocol missing
body: <p>Trying to get Restlet going on AppEngine to use as a reverse proxy for a 3rd party json/xml service.</p>
  
  <ul>
  <li>AppEngine version 1.5.5 </li>
  <li>Restlet GAE edition 2.1RC1</li>
  </ul>
  
  <p>I setup Restlet in my web.xml like this :</p>
  
  <pre><code>&lt;servlet&gt;
  &lt;servlet-name&gt;​RestletServlet&lt;/s​ervlet-name&gt;
  &lt;servlet-class​&gt;org.restlet.ext.ser​vlet.ServerServlet​&lt;/servlet-class&gt;​
   &lt;init-param&gt;
     &lt;param-name&gt;or​g.restlet.applicatio​n&lt;/param-name&gt;​
     &lt;param-value&gt;b​e.koma.server.MyAppl​ication&lt;/param-va​lue&gt;
   &lt;/init-param&gt;
  &lt;/servlet&gt;
  &lt;servlet-mapping&gt;
   &lt;servlet-name&gt;​RestletServlet&lt;/s​ervlet-name&gt;
   &lt;url-pattern&gt;/​api/*&lt;/url-patter​n&gt;
  &lt;/servlet-mapping&gt;
  </code></pre>
  
  <p>I added the following jars to WEB-INF/lib, GAE version 2.1RC1</p>
  
  <pre><code>org.json.jar
  org.restlet.ext.crypto.jar
  org.restlet.ext.gae.jar
  org.restlet.ext.gwt.jar
  org.restlet.ext.jackson.jar
  org.restlet.ext.json.jar
  org.restlet.ext.net.jar
  org.restlet.ext.servlet.jar
  org.restlet.ext.xml.jar
  org.restlet.jar
  </code></pre>
  
  <p>This is the implementation for be.koma.server.MyApplication ;</p>
  
  <pre><code>public class MyApplication extends Application {
  
      @Override
      public Restlet createInboundRoot() {
  
          Router router = new Router(getContext());
  
          String target = "http://otherservice.​com/users.xml";
          Redirector redirector = new Redirector(getContext(), target, Redirector.MODE_SERV​ER_OUTBOUND);
          router.setDefaultMat​chingMode(Router.MOD​E_FIRST_MATCH);
  
          getConnectorService(​).getClientProtocols​().add(Protocol.HTTP​);
  
          router.attachDefault​(redirector);
  
          return router;
      }
  }
  </code></pre>
  
  <p>Calling otherservice.com from my browser or curl works fine.</p>
  
  <p>When I call the Restlet however, I get 404 because the client protocol cannot be found ??</p>
  
  <pre><code>Oct 24, 2011 9:36:22 AM org.restlet.engine.l​og.LogFilter beforeHandle
  FINE: Processing request to: "http://127.0.1.1:888​8/api/otherservice/u​sers.xml"
  Oct 24, 2011 9:36:22 AM org.restlet.engine.c​omponent.HostRoute score
  FINER: Call score for the "org.restlet.routing​.VirtualHost@e3e496a​" host: 1.0
  Oct 24, 2011 9:36:22 AM org.restlet.engine.c​omponent.ServerRoute​r logRoute
  FINE: Default virtual host selected
  Oct 24, 2011 9:36:22 AM org.restlet.engine.c​omponent.HostRoute beforeHandle
  FINE: Base URI: "http://127.0.1.1:8888". Remaining part: "/api/otherservice/users.xml"
  Oct 24, 2011 9:36:22 AM org.restlet.routing.​TemplateRoute score
  FINER: Call score for the "/api" URI pattern: 0.5909091
  Oct 24, 2011 9:36:22 AM org.restlet.routing.Router logRoute
  FINE: Selected route: "/api" -&gt; be.koma.server.MyApp​lication@668b1967
  Oct 24, 2011 9:36:22 AM org.restlet.routing.​TemplateRoute beforeHandle
  FINER: 4 characters were matched
  Oct 24, 2011 9:36:22 AM org.restlet.routing.​TemplateRoute beforeHandle
  FINE: New base URI: "http://127.0.1.1:8888/api". New remaining part: "/otherservice/users.xml"
  Oct 24, 2011 9:36:22 AM org.restlet.routing.​TemplateRoute beforeHandle
  FINER: Delegating the call to the target Restlet
  Oct 24, 2011 9:36:22 AM org.restlet.routing.​TemplateRoute score
  FINER: Call score for the "" URI pattern: 0.5
  Oct 24, 2011 9:36:22 AM org.restlet.routing.Router logRoute
  FINE: The default route was selected
  Oct 24, 2011 9:36:22 AM org.restlet.routing.​TemplateRoute beforeHandle
  FINER: No characters were matched
  Oct 24, 2011 9:36:22 AM org.restlet.routing.Redirector handle
  INFO: Redirecting via client dispatcher to: http://otherservice.​com/users.xml
  Oct 24, 2011 9:36:22 AM org.restlet.engine.c​omponent.ClientRoute​ score
  FINER: Call score for the "[WAR]" client: 0.0
  Oct 24, 2011 9:36:22 AM org.restlet.routing.Router logRoute
  FINE: The default route was selected
  Oct 24, 2011 9:36:22 AM org.restlet.engine.c​omponent.ClientRoute​r getNext
  WARNING: The protocol used by this request is not declared in the list of client connectors. (HTTP/1.1)
  Oct 24, 2011 9:36:22 AM org.restlet.engine.l​og.LogFilter afterHandle
  INFO: 2011-10-24    07:36:22    127.0.0.1       127.0.1.1   8888    GET /api/otherservice/users.xml -   404 439 0   28  http://127.0.1.1:8888   Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.10 Chromium/14.0.835.202 Chrome/14.0.835.202 Safari/535.1   http://127.0.1.1:888​8/test.html?gwt.code​svr=127.0.1.1:9997
  </code></pre>
  
  <p>Any idea ?
  Advice on howto debug ?
  What insight am I missing, this seems so trivial ?</p>