Googleエンドポイントにアクセスする目的でクライアントリソースを呼び出すRestletサーバーアプリケーションがあります。
コードの要点に到達すると、次のようになります。
ClientResource storeRoot = new ClientResource("http://googleendpoint");
String jsonString = storeRoot.get().getText();
警告とエラーが表示されます:
2013年1月7日16:33:34org.restlet.engine.component.ClientRoutergetNext警告:この要求で使用されるプロトコルは、クライアントコネクタのリストで宣言されていません。(HTTPS / 1.1)。Componentクラスのインスタンスを使用している場合は、その「clients」プロパティを確認してください。見つかりません(404)-サーバーは、org.restlet.resource.ClientResource.doError(ClientResource.java:612)でリクエストURIに一致するものを検出しませんでした
私はグーグルで調べて、ソリューションが次のようにエンドポイントにプロトコルを追加している可能性があることを確認しました:
component.getClients().add(Protocol.HTTPS);
問題は、これをTomcatでwarファイルとして実行していることです。プロトコルを追加するために、このコンポーネントオブジェクトにどこからアクセスしますか?
また、次のようにこのプロトコルをサポートするようにweb.xmlを変更しました。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Restlet adapters</display-name>
<servlet>
<servlet-name>Restlet1</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
<init-param>
<param-name>org.restlet.application</param-name>
<param-value>com.MyApplication</param-value>
</init-param>
<init-param>
<param-name>org.restlet.clients</param-name>
<param-value>HTTP HTTPS FILE</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Restlet1</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>