【问题标题】:error 404 ,servlet not found with Tomcat [duplicate]错误 404,Tomcat 找不到 servlet [重复]
【发布时间】:2012-07-06 22:31:02
【问题描述】:

我想在我的 maven 项目中编写一个简单的 servlet,但我收到此错误,在此服务器上找不到请求的 url (/src/main/java/web.servlets.FunctionalTestServlet)。

这是我的代码:

Servlet:位于 src/main/java 打包 web.servlets;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FunctionalTestServlet extends HttpServlet
  {

public void doGet(HttpServletRequest request,HttpServletResponse response)throws  
    ServletException, IOException {

     PrintWriter out = response.getWriter();
     out.println( "SimpleServlet Executed" );
     out.flush();
     out.close();
    }


public void doPost(HttpServletRequest request,  HttpServletResponse response)
          throws IOException, ServletException{
          response.setContentType("text/html");
          PrintWriter out = response.getWriter();  
          String fileName = request.getParameter("testfile");
           out.println("<b><font color='blue'>The File name is 
                     :</font></b>" 
          + "<b>"+ fileName +"</b>" + "<br>");
        }
          }

jsp页面:src/main/webapp下

 <html:file properties="tonFichier" name="tonForm"/>


  <form action="/src/main/java/web.servlets.FunctionalTestServlet"   
  enctype="multipart/form-data" method="post">
    <p>
   Type some text (if you like):<br>
   <input type="text" name="textline" size="30">
   </p>
   <p>
    Please specify a Test , or a set of tests:<br>
   <input type="file" name="testfile" size="40" >
   </p>
   <div>
  <input type="submit" value="Execute Test">

  </div>
 </form>
 </body>
 </html>

这是我的 web.xml:在 /WebTestAutomatisation/src/main/webapp/WEB-INF/web.xml 下

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
<display-name>Archetype Created Web Application</display-name>

<servlet>
<servlet-name>FunctionalTestServlet</servlet-name>
 <servlet-class>web.servlets.FunctionalTestServlet.java</servlet-class>
</servlet> 
<servlet-mapping>
<servlet-name>FunctionalTestServlet</servlet-name>
 <url-pattern>/*</url-pattern>
</servlet-mapping>

  </web-app>

【问题讨论】:

    标签: tomcat servlets maven


    【解决方案1】:

    我意识到这是一个旧线程,但我一直在努力解决一个非常相似的问题,并且刚刚找到了解决方案。我想我会分享...

    我对 Maven 比较陌生,并且一直在使用 maven 3.1、tomcat 7.0.37、java 1.7 和 Eclipse Juno 解决非常类似的问题。我将使用 maven-archetype-webapp 创建一个 maven 项目,然后使用动态 Web 模块将项目转换为分面形式,将我的内容目录设置为 /src/main/webapp。

    我将创建我的 servlet 类并确保将 servlet-api.jar 包含到 java 构建路径中。我还更新了 pom.xml 对 javax.servlet-api 的依赖,范围为“提供”:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1-b05</version>
        <scope>provided</scope>
    </dependency>
    

    我将项目包含在 tomcat 服务器中,当访问 servlet url 时,我会收到 404 错误 - 请求的资源不可用。

    我为此苦苦挣扎了两天,今天早上才发现解决方案。我缺少的部分是进行“maven 安装”。由于我使用的是 Eclipse,因此需要右键单击项目,选择“运行方式”,然后选择“Maven 安装”。之后,我停止/重新启动本地 tomcat 服务器,然后我能够成功地让 servlet 工作。

    我注意到的另一件事是,在查看 java 构建路径中的库选项卡时,开箱即用配置的 JRE 系统库是 J2SE-1.5。我将我的更改为 JavaSE-1.7 (jdk1.7.0_13)。

    在这个问题上对我帮助最大的是这个视频:

    http://www.youtube.com/watch?v=8Waf4jBbino

    我希望这对某人有帮助!

    【讨论】:

      【解决方案2】:
      <servlet-name>FunctionalTestServlet</servlet-name>
       <servlet-class>web.servlets.FunctionalTestServlet.java</servlet-class>
      </servlet>
      

      你需要把类名放在那里。把“.java”放在最后。

      <servlet-mapping>
      <servlet-name>FunctionalTestServlet</servlet-name>
       <url-pattern>/*</url-pattern>
      </servlet-mapping>
      

      通过这种映射,您的 servlet 将获得所有个请求。所以URL可以是'/',不需要'/src/main/java/web.servlets.FunctionalTestServlet'。您可能想要/FunctionalTest 的模式。

      此外,Web 服务器通常甚至无法访问源文件,只能访问已编译的类文件。 URL 路径映射在 web.xml 中,与包名或类名完全无关。

      【讨论】:

      • 我试过了,但问题仍然存在
      • 你能发布你的web.xml映射吗?
      • ttp://java.sun.com/dtd/web-app_2_3.dtd" rel="nofollow" target="_blank">java.sun.com/dtd/web-app_2_3.dtd" > 原型创建的 Web 应用程序FunctionalTestServletweb.servlets.FunctionalTestServletFunctionalTestServlet/*
      猜你喜欢
      • 2014-04-03
      • 1970-01-01
      • 2014-08-21
      • 2015-11-15
      • 1970-01-01
      • 1970-01-01
      • 2018-06-06
      • 2021-05-11
      • 1970-01-01
      相关资源
      最近更新 更多