2012-04-23 60 views
0

我正在嘗試部署我的應用程序到GAE,但我得到百達404未找到錯誤所有頁面(JSP)除了默認。 REST風格的Web服務正常運行。我正在使用netbeans 7.1.1和gae 1.6.4.1GAE 404 NOT_FOUND錯誤

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

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

我tryied與下,appcfg腳本而不是netbeans插件,上傳,但由於過程失敗:

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

我不能簡單地做它的工作使用下,appcfg腳本,searech互聯網幾乎整整一天,未發現可能的解決方案。使用netbeans插件上傳沒有任何問題。

那麼,爲什麼總是在gae上扔404?請幫忙。

Thx非常多。如果您需要其他信息,我很樂意在此發佈。

好吧,這是我的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> 

+1

除非您向我們展示關於您的應用的一些細節,從您的web.xml文件開始,否則我們不可能提供幫助。 – 2012-04-24 00:48:13

+0

我添加了我的整個web.xml文件 – 2012-04-24 08:10:12

+0

試試這個[參考](http://stackoverflow.com/q/21503068/1897935)。請檢查1)項目結構2)jdk路徑 – 2014-05-14 16:40:15

回答

0

經過調試和搜索的時間,我發現,如果你想映射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上。多麼糟糕......

0

我從來沒有將JSP映射到web.xml中的任何東西。你爲什麼這樣做?