2012-04-23 40 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中的任何东西。你为什么这样做?