Servlet URL 404,虽然JSP文件工作正常

时间:2015-09-30 09:32:41

标签: java eclipse jsp tomcat servlets

设置: Tomcat 7 Server,Eclipse Mars Milestone 3

问题:当尝试运行Servlet文件或连接到文件404时。尽管我可以完美地连接到JSP文件,但它只是404.下图所示的所有servlet文件。 enter image description here

还应该提及这个影响所有Servlet,而不仅仅是一个或两个ALL。

我认为这是一个本地问题,因为同事正在另一台机器上运行下一个相同的设置,尽管已经成功找到了servlet。

这是启动日志,尽管在启动时或加载servlet网址时都没有显示明显错误。

我在servlet中使用servlet映射来定义URL IE @WebServlet("/Sterling")

问题:可能导致此问题的原因以及如何解决?谢谢。

Sep 30, 2015 10:21:29 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files (x86)\Java\jre6\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files (x86)/Java/jre6/bin/client;C:/Program Files (x86)/Java/jre6/bin;C:/Program Files (x86)/Java/jre6/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Micro Focus\RUMBA\;C:\Program Files (x86)\Micro Focus\RUMBA\System;C:\Eclipse;
Sep 30, 2015 10:21:30 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:{redacted}' did not find a matching property.
Sep 30, 2015 10:21:30 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-80"]
Sep 30, 2015 10:21:30 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Sep 30, 2015 10:21:30 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1879 ms
Sep 30, 2015 10:21:30 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Sep 30, 2015 10:21:30 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.34
Sep 30, 2015 10:21:37 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-80"]
Sep 30, 2015 10:21:37 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Sep 30, 2015 10:21:37 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 6704 ms

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" id="WebApp_ID" version="3.0">
  <display-name>*****DataManagementTool</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

部署程序集设置

enter image description here

1 个答案:

答案 0 :(得分:-1)

这是一个未找到的错误。您的日志显示没有错误,因此非常简单,您的部署无法到达所需的servlet。

没有足够的信息来确定原因,但由于您可以访问JSP文件,我会检查您是否已将正确的servlet配置到WEB-INF/web.xml描述符中。

修改

正如您刚刚编辑过的问题,我可以告诉您问题是什么。您尚未配置servlet ...按以下方式配置所需的servlet:

    <servlet>
            <servlet-name>Servlet Name</servlet-name>
            <servlet-class>path.to.ServletClass</servlet-class>
            <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
            <servlet-name>Servlet Name</servlet-name>
            <url-pattern>URL-PATTERN</url-pattern>
    </servlet-mapping>

编辑2

在您的编辑之后,我没有看到您使用了注释,显然如果您注释了servlet,则不需要此配置。

编辑3

确保您的web.xml具有正确的架构版本,以及其他方式可以让您的应用忽略注释。

<web-app 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_3_0.xsd"
     version="3.0">

我想你的servlet类继承自HttpServlet,对吗?