Java 警告:找不到:/sign的文件

Java 警告:找不到:/sign的文件,java,eclipse,google-app-engine,servlets,Java,Eclipse,Google App Engine,Servlets,我正在尝试运行上提供的应用程序引擎教程。正如教程所要求的,我已经将新的servlet SignGuestbookServlet.java映射到web.xml中的url模式“/sign”,但是当我尝试访问localhost:8888/sign上的资源时,我得到了一个404错误 Web.xml: <?xml version="1.0" encoding="utf-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-in

我正在尝试运行上提供的应用程序引擎教程。正如教程所要求的,我已经将新的servlet SignGuestbookServlet.java映射到web.xml中的url模式“/sign”,但是当我尝试访问localhost:8888/sign上的资源时,我得到了一个404错误

Web.xml:

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
    <servlet-name>SignGuestbookServlet</servlet-name>
    <servlet-class>guestbook.SignGuestbookServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>SignGuestbookServlet</servlet-name>
    <url-pattern>/sign</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>Guestbook</servlet-name>
    <servlet-class>guestbook.GuestbookServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Guestbook</servlet-name>
    <url-pattern>/guestbook</url-pattern>
</servlet-mapping>


<welcome-file-list>
    <welcome-file>guestbook.jsp</welcome-file>
</welcome-file-list>
</web-app>
为什么会发生这种情况?任何帮助都将不胜感激


注意:我正在使用get方法从表单发送数据,因此我使用了doGet()而不是doPost()。

Servlet类的名称与web.xml中的完全限定名称不匹配。您的servlet类名是
SignGuestbookServlet

public class SignGuestbookServlet extends HttpServlet
但是在web.xml中,它被指定为
GuestbookServlet

<servlet-class>guestbook.GuestbookServlet</servlet-class>
guestbook.GuestbookServlet
使用此处提到的正确servlet类名更新web.xml

<servlet-class>guestbook.SignGuestbookServlet</servlet-class>
guestbook.SignGuestbookServlet

您的Java代码没有问题。问题是
web.xml
中存在错误(额外)条目,因此启动本地开发服务器时会出现错误,因此上下文未正确初始化。因此,尽管服务器正在运行,但在尝试访问/签名端点时会出现错误

要解决此问题,请执行以下操作:

当前您的
web.xml
如下所示:

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
   <servlet-name>SignGuestbookServlet</servlet-name>
   <servlet-class>guestbook.SignGuestbookServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>SignGuestbookServlet</servlet-name>
  <url-pattern>/sign</url-pattern>
</servlet-mapping>
<servlet>
   <servlet-name>Guestbook</servlet-name>
   <servlet-class>guestbook.GuestbookServlet</servlet-class>
</servlet>
<servlet-mapping>
   <servlet-name>Guestbook</servlet-name>
   <url-pattern>/guestbook</url-pattern>
</servlet-mapping>
<welcome-file-list>
   <welcome-file>guestbook.jsp</welcome-file>
</welcome-file-list>
</web-app>

保存您的
web.xml
。停止本地服务器。再次启动本地服务器。一切都会好起来的

我的代码中有两个servlet:一个是GuestbookServlet,另一个是SignGuestbookServlet。@Neha您的servlet映射不正确。您对这两个servlet使用了相同的名称。是的,您是对的。我停止了本地服务器并再次启动它。但我想那没用。重新启动系统后,服务器被迫重新启动,然后向我显示正确的输出。我的代码中有两个servlet,因此不需要修改web.xml。
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
   <servlet-name>SignGuestbookServlet</servlet-name>
   <servlet-class>guestbook.SignGuestbookServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>SignGuestbookServlet</servlet-name>
  <url-pattern>/sign</url-pattern>
</servlet-mapping>
<servlet>
   <servlet-name>Guestbook</servlet-name>
   <servlet-class>guestbook.GuestbookServlet</servlet-class>
</servlet>
<servlet-mapping>
   <servlet-name>Guestbook</servlet-name>
   <url-pattern>/guestbook</url-pattern>
</servlet-mapping>
<welcome-file-list>
   <welcome-file>guestbook.jsp</welcome-file>
</welcome-file-list>
</web-app>
<servlet>
   <servlet-name>Guestbook</servlet-name>
   <servlet-class>guestbook.GuestbookServlet</servlet-class>
</servlet>
<servlet-mapping>
   <servlet-name>Guestbook</servlet-name>
   <url-pattern>/guestbook</url-pattern>
</servlet-mapping>
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
   <servlet-name>SignGuestbookServlet</servlet-name>
   <servlet-class>guestbook.SignGuestbookServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>SignGuestbookServlet</servlet-name>
  <url-pattern>/sign</url-pattern>
</servlet-mapping>

<welcome-file-list>
   <welcome-file>guestbook.jsp</welcome-file>
</welcome-file-list>
</web-app>