1
  1. 我用 Eclipse 创建了一个基于Tomcat HelloWorld Servlet的测试项目
  2. 并尝试从 Eclipse 运行它,就像使用 Tomcat 7 一样,我已将其配置为在 127.0.0.1 上运行 - 但我Page cannot be found在 127.0.0.1/helloworld/HelloWorld
  3. 我还尝试导出为war文件并将其部署到作为Windows服务运行的(否则工作)Tomcat服务器 - 并使用Tomcat应用程序管理器部署 - manifest.mf 并且这些类很好地复制到tomcat / webapps / helloworld,但尝试导航到 127.0.0.1/helloworld/HelloWorld 再次失败,显示HTTP Status 404

从默认的@WebServlet 到 web.xml 配置

接下来,在 HelloWorld.java 中,我尝试注释掉

//@WebServlet("/HelloWorld")

然后添加特定于 web 应用程序的 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"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <servlet>
        <servlet-name>HelloWorld</servlet-name>
        <servlet-class>HelloWorld</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloWorld</servlet-name>
        <url-pattern>/HelloWorld</url-pattern>
    </servlet-mapping>
</web-app>

但结果还是一样——没有反应!

解决方案?

  • 鉴于链接教程提供了 Tomcat 6 的说明,我是否应该更改一些内容以使其与 Tomcat 7 一起使用?
  • 具体来说,Eclipse添加的默认@WebServlet("/HelloWorld")就够了吗?Servlet 3.0 的基于注释的配置需要什么才能工作(没有 web.xml)?
  • 还是有什么东西阻止了全局 tomcat 服务器级别的任何 Web 应用程序部署?我已经稍微更改了服务器配置,不幸的是我不记得具体是什么,除了让它服务于 127.0.0.1 而不是 127.0.0.1:8080
4

2 回答 2

2

打开动态 Web 项目的属性页面,单击“Web 项目设置”并使用上下文根参数作为 URL 的根路径。

于 2012-07-15T12:16:39.823 回答
1

尝试在 WebContent 中放置一个默认的 Index.html 页面,并查看欢迎页面是否指向它。如果是,则尝试手动输入 servlet 名称并查看是否有效。我得到了同样的错误,但这样做可以解决它。

http://localhost:8080/<Project_Name>/index.html

http://localhost:8080/<Project_Name>/servlet_name
于 2013-01-25T20:07:36.803 回答