java - 使用 App Engine 配置 ReSTLet

标签 java google-app-engine web.xml restlet restlet-2.0

我正在使用谷歌应用程序引擎使用java和ReSTLet框架来开发我的软件后端。我的 war 目录下有 index.jsp,当有人访问我的网站(例如 example.com)时,我想将其视为默认页面。所以我在 web.xml 的welcome-file-list 部分提到了它。

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

此外,我将 ReSTLet servlet 映射到 web.xml 中的“/*”。

<servlet-mapping>
    <servlet-name>RestletServlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

但是问题出现在这里,因为即使调用默认页面,即 example.com,也会转到 ReSTLet,而 ReSTLet 显然在其路由器中找不到映射。所以我决定将reSTLet servlet 映射到“/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>

谢谢!

玛纳斯

最佳答案

您不需要更改 ReSTLet 路由器中的映射来匹配新模式“reSTLet/*”,因为 ReSTLet 路由器现在会将“example.com/reSTLet/”视为基本 URL。

因此,如果您将路由器更改为匹配“/reSTLet/doSomething”,则您的实际网址将是“example.com/reSTLet/reSTLet/doSomething”,这显然是行不通的。

因此,将您的 ReSTLet 路由更改为:

router.attach("/doSomething",DoSomething.class);

关于java - 使用 App Engine 配置 ReSTLet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15705377/

相关文章:

java - 从 tomcat 访问 jar 文件

java - JNDI 中的 LdapContext 与 dircontext

java - 无法加载 JDBC 驱动程序类 'com.mysql.jdbc.GoogleDriver'

java - App Engine Java - 从 mp4 视频中提取缩略图

java - 我可以在程序的不同部分重复使用 JLabel 组件吗?

java - Android ANR CRASH Intent 广播 { act=android.intent.action.SCREEN_ON flg=0x50200010 }

python - 从 Google App Engine 下载源代码

tomcat - 返回空值的 javax.servlet.request.X509Certificate 问题

java - 如何读取非 servlet java 文件中的上下文参数/web.xml 值?

java - 如何在JSP中访问web.xml初始化参数