java - 找不到页面 404 Apache Tomcat

标签 java eclipse apache tomcat servlets

我正在尝试学习使用 jersey 和 servlet 创建 REST 服务器。 我提到了 this例子 。这是运行较早但不再运行。早些时候,我曾经导出 war 文件,然后使用命令行启动 tomcat,它工作正常。后来我在eclipse中添加了服务器,开始直接运行,url能用,然后就突然不能用了。

我几乎每次都收到 404 错误,但昨天在我重新启动服务器并更改了一些设置后 url 再次工作。不确定我做了什么。今天我打开了 eclipse,我获得了 404。

我认为 tomcat 设置可能存在一些问题。我是 servlet 和 tomcat 的新手。

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>com.aarfid.restserver</display-name>
   <servlet>
      <servlet-name>Jersey RESTful Application</servlet-name>
      <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
         <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>com.aarfid.restserver</param-value>
         </init-param>
      </servlet>
   <servlet-mapping>
   <servlet-name>Jersey RESTful Application</servlet-name>
      <url-pattern>/rest/*</url-pattern>
   </servlet-mapping>  
</web-app>

项目结构

enter image description here

服务器设置

enter image description here

我已经提到了

Tomcat 7 keeps giving me a 404. What am I doing wrong?

HTTP Status 404 - The requested resource (/) is not available

编辑

还有 http://localhost:8080也给出 404 错误,而 eclipse 显示服务器已启动。

编辑 2 Tomcat日志

Feb 26, 2016 2:17:33 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:WebProject' did not find a matching property.
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version:        Apache Tomcat/7.0.68
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          Feb 8 2016 20:25:54 UTC
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number:         7.0.68.0
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Windows 8.1
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            6.3
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          amd64
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             C:\Program Files\Java\jre7
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           1.7.0_79-b15
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         C:\RachitaData\Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         C:\RachitaData\apache-tomcat-7.0.68-windows-x64\apache-tomcat-7.0.68
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=C:\RachitaData\Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\RachitaData\apache-tomcat-7.0.68-windows-x64\apache-tomcat-7.0.68
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=C:\RachitaData\Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=C:\RachitaData\apache-tomcat-7.0.68-windows-x64\apache-tomcat-7.0.68\endorsed
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
Feb 26, 2016 2:17:33 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
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\Java\jre7\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\Java\jdk1.7.0_79\bin;C:\Program Files\Git\cmd;.
Feb 26, 2016 2:17:33 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Feb 26, 2016 2:17:33 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Feb 26, 2016 2:17:33 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 756 ms
Feb 26, 2016 2:17:33 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Feb 26, 2016 2:17:33 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.68
Feb 26, 2016 2:17:33 AM org.apache.catalina.loader.WebappClassLoaderBase validateJarFile
INFO: validateJarFile(C:\RachitaData\Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\WebProject\WEB-INF\lib\javax.servlet-api-3.0.1.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
Feb 26, 2016 2:17:34 AM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Feb 26, 2016 2:17:34 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Feb 26, 2016 2:17:34 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Feb 26, 2016 2:17:34 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1353 ms

最佳答案

试试这个:

<listener>
        <listener-class>
            org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
    </listener>
    <servlet>
        <servlet-name>resteasy-servlet</servlet-name>
        <servlet-class>
            org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.aarfid.restserver</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

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

</web-app>

如果它不起作用,请将您使用的库和服务类添加到您的问题中...

这样的结构:

src
----main
-------java
--------------packages
-------resourses
-------webapp
----------WEB-INF
--------------web.xml

关于java - 找不到页面 404 Apache Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35645395/

相关文章:

c# - 带有 C# 类的 Apache

apache - 客户端证书系统中可能存在的性能瓶颈

java - 如何将数组值映射到另一个数组值

java - 使用 Java8 Streams 进行部分字符串匹配

java - Eclipse - 强制刷新 ID

java - 在 Eclipse 中,动态布局中弹出的文本链接

tomcat - 使用 mod_proxy 从 80 上的 Apache 转发连接到 8080 上的 Tomcat 6

使用 XSLT xml 样式表位置将 Java XML 转换为 HTML

java - Dom4 1.6.1j : XPath that returns non-node type value possible?

Android SDK 管理器获取失败