現在面臨通過這個網址訪問RESTful Web服務的一個問題: localhost:8080/PrimNumbers/Generator/strategy
error404使用Jersey框架和Tomcat服務器訪問RESTful Web服務
我得到這個錯誤:
HTTP Status 404 - /PrimNumbers/Generator/strategy
type Status report
message /PrimNumbers/Generator/strategy
description The requested resource is not available.
正在使用tomcat7.0.81服務器和jersey1.17框架(我在我的項目中包含了WEB-INF/lib下的jersey jar文件)。 這裏是我的web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<element>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>PrimNumbers</display-name>
<servlet>
<servlet-name>Jersey RESTful Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name> jersey.config.server.provider.packages</param-name>
<param-value>PrimeNbs</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Jersey RESTful Application</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
</element
>
,這是我service.java(我只是測試服務):
package PrimeNbs;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
//annotations
@Path("/Generator")
public class PrimeNbsGeneratorService {
@GET
@Path("/strategy")
@Produces(MediaType.TEXT_HTML)
public String Strategy1(){
boolean prime=true;
String rslt="<HTML><h1> Prime numbers: ";
return(rslt+" test...</h1></HTML>");
}
}
運行我的服務器,而我得到了這些日誌消息:
> ug 22, 2017 11:22:44 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:PrimNumbers' did not find a matching property.
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version: Apache Tomcat/7.0.81
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built: Aug 11 2017 10:21:27 UTC
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number: 7.0.81.0
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name: Linux
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version: 4.4.0-21-generic
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture: amd64
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home: /home/elhem/java/jre1.8.0_121
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version: 1.8.0_121-b13
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor: Oracle Corporation
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE: /home/elhem/workspace/tomcat
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME: /home/elhem/workspace/tomcat
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=/home/elhem/workspace/tomcat
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=/home/elhem/workspace/tomcat
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=/home/elhem/workspace/tomcat/wtpwebapps
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=/home/elhem/workspace/tomcat/endorsed
Aug 22, 2017 11:22:44 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=UTF-8
Aug 22, 2017 11:22:44 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: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Aug 22, 2017 11:22:45 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Aug 22, 2017 11:22:45 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Aug 22, 2017 11:22:45 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 865 ms
Aug 22, 2017 11:22:45 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Aug 22, 2017 11:22:45 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.81
Aug 22, 2017 11:22:45 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.
Aug 22, 2017 11:22:45 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/elhem/workspace/tomcat/webapps/host-manager
Aug 22, 2017 11:22:45 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /home/elhem/workspace/tomcat/webapps/host-manager has finished in 74 ms
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/elhem/workspace/tomcat/webapps/manager
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /home/elhem/workspace/tomcat/webapps/manager has finished in 67 ms
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/elhem/workspace/tomcat/webapps/ROOT
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /home/elhem/workspace/tomcat/webapps/ROOT has finished in 61 ms
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/elhem/workspace/tomcat/webapps/docs
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /home/elhem/workspace/tomcat/webapps/docs has finished in 60 ms
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /home/elhem/workspace/tomcat/webapps/examples
Aug 22, 2017 11:22:46 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Aug 22, 2017 11:22:46 AM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Aug 22, 2017 11:22:46 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', '[email protected]')
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /home/elhem/workspace/tomcat/webapps/examples has finished in 231 ms
Aug 22, 2017 11:22:46 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Aug 22, 2017 11:22:46 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Aug 22, 2017 11:22:46 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1397 ms
任何人都可以幫忙!我會很感激。
你使用了錯誤的init-PARAM。你使用的是Jersey 2.x.您正在使用1.x.尋找一個1.x例子。包掃描的init-param名稱應該以'com.sun.jersey' –
感謝peeskillet開頭,但我嘗試過:com.sun.jersey.config.property.packages,但仍然有相同的錯誤。 – ellenn