簡體   English   中英

GAE 404 NOT_FOUND錯誤

[英]GAE 404 NOT_FOUND error

我正在嘗試將我的應用程序部署到GAE,但我始終 除default之外的 所有頁面(jsp) 遇到404 not found錯誤。 RESTful Web服務正常工作。 我正在使用netbeans 7.1.1和gae 1.6.4.1

當我在本地測試時,一切正常,沒有任何問題。 但是當我上傳它時,總是只有默認頁面可用。 我試了幾乎所有東西。

我嘗試使用appcfg.cmd檢查文件是否在GAE上。 我從GAE下載了文件,發現沒有人丟失,因此更新過程可能成功。

我嘗試用appcfg腳本而不是netbeans插件上載它,但是由於以下原因,該過程失敗了:

com.google.appengine.tools.admin.JspCompilationException:無法編譯jsp文件。

我不能簡單地使它使用appcfg腳本,幾乎整個一天的searech互聯網都能正常工作,卻找不到可能的解決方案。 使用netbeans插件上傳可以正常工作。

那么,為什么總是在gae上拋出404呢? 請幫忙。

非常感謝。 如果您需要任何其他信息,我將很樂意在此處發布。

好的,這是我的web.xml

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
    <servlet-name>facebookLogin</servlet-name>
    <servlet-class>Login.FacebookLogin</servlet-class>
</servlet>
<servlet>
    <servlet-name>PlanProcess</servlet-name>
    <servlet-class>Input.PlanProcess</servlet-class>
</servlet>
<welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<servlet-mapping>
    <servlet-name>facebookLogin</servlet-name>
    <url-pattern>/facebooklogin</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>private</servlet-name>
    <jsp-file>private.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>private</servlet-name>
    <url-pattern>/private</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>editPlan</servlet-name>
    <jsp-file>editTrainingPlan.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>editPlan</servlet-name>
    <url-pattern>/private/trainingplan/*</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>listplans</servlet-name>
    <jsp-file>listTrainingPlans.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>listplans</servlet-name>
    <url-pattern>/private/listplans</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>visualize</servlet-name>
    <jsp-file>visualize.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>visualize</servlet-name>
    <url-pattern>/private/visualize</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>graph</servlet-name>
    <jsp-file>graph.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>graph</servlet-name>
    <url-pattern>/graph/*</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>created</servlet-name>
    <jsp-file>created.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>created</servlet-name>
    <url-pattern>/created</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>login</servlet-name>
    <jsp-file>login.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>newRecord</servlet-name>
    <jsp-file>newRecord.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>newRecord</servlet-name>
    <url-pattern>/private/newrecord</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>newPlan</servlet-name>
    <jsp-file>newPlan.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>newPlan</servlet-name>
    <url-pattern>/private/newplan</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>newExcercise</servlet-name>
    <jsp-file>newExcercise.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>newExcercise</servlet-name>
    <url-pattern>/private/newexcercise</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>Jersey Web Application</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>Webservice</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey Web Application</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>test</servlet-name>
    <servlet-class>test.InsertToDb</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>test</servlet-name>
    <url-pattern>/testinsert</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>recordProcess</servlet-name>
    <servlet-class>Input.RecordProcess</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>recordProcess</servlet-name>
    <url-pattern>/record_process</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>excerciseProcess</servlet-name>
    <servlet-class>Input.ExcerciseProcess</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>excerciseProcess</servlet-name>
    <url-pattern>/excercise_process</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>PlanProcess</servlet-name>
    <url-pattern>/plan_process</url-pattern>
</servlet-mapping>

經過數小時的調試和搜索,我發現,如果要映射jsp文件

你必須使用

<servlet>
    <servlet-name>editPlan</servlet-name>
    <jsp-file>**/**xxx.jsp</jsp-file>
</servlet>

代替

<servlet>
    <servlet-name>editPlan</servlet-name>
    <jsp-file>xxx.jsp</jsp-file>
</servlet>

路徑中的'/'是必不可少的,它將在loaclhost上工作,但不會在gae上部署。 真是的

我從未將JSP映射到web.xml任何內容。 你為什么要這么做?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM