私はGoogleアプリエンジンを使用して、JavaとRestletフレームワークを使用してソフトウェアのバックエンドを開発しています。war ディレクトリの下に index.jsp があり、誰かが私の Web サイト (example.com など) にアクセスしたときに、これをデフォルト ページとして扱いたいと考えています。そのため、web.xml のwelcome-file-list セクションで言及しました。
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
また、web.xml で Restlet サーブレットを "/*" にマップしています。
<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
しかし、ここで問題が発生します。これは、デフォルト ページ、つまり example.com への呼び出しでさえも、明らかにそのルーターでマッピングを見つけられない restlet に送られるためです。そこで、代わりに restlet サーブレットを「/restlet/*」にマップすることにしました。
<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/restlet/*</url-pattern>
</servlet-mapping>
しかし、これでHTTP 404エラーが発生します。なぜなら、web.xmlが呼び出しをrestletに正常にルーティングしても、restletはこの場合、ルーターオブジェクトでマッピングを見つけられないからです。私は明らかに、restlet ルーターのマッピングを新しいパターン "restlet/*" に一致するように変更しました。
router.attach("/restlet/doSomething",DoSomething.class);
誰かがこれで私を助けることができれば、それは本当に素晴らしいことです. 以下は私の完全なweb.xmlです:
<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>com.mWallet.loyaltyCardCase.LoyaltyCardCaseWebService
</param-value>
</init-param>
</servlet>
<!-- Catch all requests -->
<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/restlet/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
ありがとう!
マナス