2011-10-24 12 views
0

AppEngineを使って、Restartをサードパーティのjson/xmlサービスのリバースプロキシとして使用しようとしています。AppEngineのリバースプロキシ(restlet 2.1):404 - クライアントプロトコルが見つからない

  • AppEngineのバージョン1.5.5
  • のRestletこのように私のweb.xmlのGAE版2.1RC1

IセットアップのRestlet:

<servlet> 
<servlet-name>​RestletServlet</s​ervlet-name> 
<servlet-class​>org.restlet.ext.ser​vlet.ServerServlet​</servlet-class>​ 
<init-param> 
    <param-name>or​g.restlet.applicatio​n</param-name>​ 
    <param-value>b​e.koma.server.MyAppl​ication</param-va​lue> 
</init-param> 
</servlet> 
<servlet-mapping> 
<servlet-name>​RestletServlet</s​ervlet-name> 
<url-pattern>/​api/*</url-patter​n> 
</servlet-mapping> 

私はWEBに次のjarファイルを追加しました-INF/lib、GAEバージョン2.1RC1

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 

これはbe.koma.server.MyApplicationの実装です。

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; 
    } 
} 

私のブラウザまたはカールからotherservice.comを呼び出すと正常に動作します。

しかし、私がRestletを呼び出すと、クライアントプロトコルが見つからないため404が返ってくるのですか?

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​[email protected]​" 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" -> be.koma.server.MyApp​[email protected] 
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 

howtoデバッグのアドバイス? どのような洞察力が欠けていますか、これはとても簡単ですか? Restletメーリングリストのジェロームへ

答えて

1

Thxを、追加の初期化パラメータは、問題を解決:

<servlet> 
    <servlet-name>RestletServlet</servlet-name> 
    <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class> 
    <init-param> 
     <param-name>org.restlet.application</param-name> 
     <param-value>b​e.koma.server.MyAppl​ication</param-value> 
    </init-param> 
    <init-param> 
     <param-name>org.restlet.clients</param-name> 
     <param-value>HTTP HTTPS</param-value> 
    </init-param> 
</servlet> 

詳細情報 http://www.restlet.org/documentation/snapshot/gae/ext/org/restlet/ext/servlet/ServerServlet.html

関連する問題