[英]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.