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</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
<init-param>
<param-name>org.restlet.application</param-name>
<param-value>be.koma.server.MyApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/api/*</url-pattern>
</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_SERVER_OUTBOUND);
router.setDefaultMatchingMode(Router.MODE_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.log.LogFilter beforeHandle
FINE: Processing request to: "http://127.0.1.1:8888/api/otherservice/users.xml"
Oct 24, 2011 9:36:22 AM org.restlet.engine.component.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.component.ServerRouter logRoute
FINE: Default virtual host selected
Oct 24, 2011 9:36:22 AM org.restlet.engine.component.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.component.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.component.ClientRouter 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.log.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:8888/test.html?gwt.codesvr=127.0.1.1:9997
howtoデバッグのアドバイス? どのような洞察力が欠けていますか、これはとても簡単ですか? Restletメーリングリストのジェロームへ