【发布时间】:2013-01-28 09:22:02
【问题描述】:
应用运行良好。但是在我们部署了版本 4 之后,它显示了这个错误:
错误:NOT_FOUND
没有其他消息。
你可以看到它here。 部署 eclipse 时会显示成功消息:Task7 已成功部署到 Google App Engine
所有以前的版本仍然运行良好。本地版本也可以正常运行。 试图找到类似的问题,发现了一些(1,2,3),但都没有任何有用的解决方案。
我不知道 web.xml 是否有助于找出解决方案,但我在这里给出。虽然我查了一下之前版本的web.xml(运行良好)和这个类似。
<?xml version="1.0" encoding="utf-8" standalone="no"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>controller</servlet-name>
<servlet-class>ebiz.pbj.task7.controller.Controller</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>controller</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>controller</servlet-name>
<url-pattern> /start </url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file> start </welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>SystemServiceServlet</servlet-name>
<servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class>
<init-param>
<param-name>services</param-name>
<param-value/>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SystemServiceServlet</servlet-name>
<url-pattern>/_ah/spi/*</url-pattern>
</servlet-mapping>
<filter>
<filter-name>ObjectifyFilter</filter-name>
<filter-class>com.googlecode.objectify.ObjectifyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ObjectifyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
如果您需要任何其他代码摘录,请告诉我,我会编辑我的问题。
真的很困惑突然出了什么问题。欢迎任何帮助。谢谢。
【问题讨论】:
-
我访问了您的应用但没有登录。你的错误什么时候发生? (登录后立即?)您的应用程序日志中是否显示任何内容?是否有与您的错误相关的错误编号(例如:404)?
-
是的,登录后立即。在页面中它只显示“错误:NOT_FOUND”,但标题是“404 NOT_FOUND”。在日志中,没有出现错误。
-
由于您的版本 3 有效,但您的版本 4 无效,如果您使用的 GAE/J 版本在它们之间没有更改,那么您可能必须通过代码更改来找到可能的候选者问题的原因。
-
感谢@Ian Marshall,在我浏览了其他队友完成的代码的其他部分后,我发现了问题。
-
我想我应该分享我的发现,以防其他人遇到同样的问题。这可能不是问题的唯一原因,因为 404: NOT_FOUND 可能由于各种原因而发生,但这是原因之一,人们应该意识到这一点。 jsp 文件的命名区分大小写。在控制器中,我们有这样的代码: if (errors.size() != 0) { return "login.jsp"; } 但是我们的 login.jsp 被错误地命名为 Login.jsp - 所以它找不到它。