我正在尝试学习使用 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>
项目结构
服务器设置
我已经提到了
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/