Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse 无法在tomcat上运行Jersey web服务_Eclipse_Rest_Jersey_Tomcat7 - Fatal编程技术网

Eclipse 无法在tomcat上运行Jersey web服务

Eclipse 无法在tomcat上运行Jersey web服务,eclipse,rest,jersey,tomcat7,Eclipse,Rest,Jersey,Tomcat7,我已经使用Jersey 1.17.1开发了一个简单的rest web服务,并在Tomcat7.0.41中进行了部署。但是,当点击服务URL时,我得到404响应(请求的资源不可用)。我确实在tomcat日志中找到了下面的语句,但无法找出原因- com.sun.jersey.api.core.ScanningResourceConfig初始化 信息:找不到提供程序类 下面是我正在使用的代码:- package com.test.rest.service; import javax.ws.rs.GET

我已经使用Jersey 1.17.1开发了一个简单的rest web服务,并在Tomcat7.0.41中进行了部署。但是,当点击服务URL时,我得到404响应(请求的资源不可用)。我确实在tomcat日志中找到了下面的语句,但无法找出原因- com.sun.jersey.api.core.ScanningResourceConfig初始化 信息:找不到提供程序类

下面是我正在使用的代码:-

package com.test.rest.service;
import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.PathParam; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

@Path("persolazation")
public class PersolazationService { 
@GET       
@Path("/name/{i}") 
@Produces(MediaType.TEXT_XML)       
public String userName(@PathParam("i") String i) {       
String name = i; 
return "<User>" + "<Name>" + name + "</Name>" + "</User>"; 
}            
}
请告知

谢谢,
Deep

由于war的名称是RestfulWS.war,默认情况下,Tomcat将在
http://localhost:8080/RestfulWS
。这将是web应用程序的上下文根(假设您没有更改Tomcat端口)

如果您点击该url,并且在src/main/webapp下有index.html,那么您将看到index.html的内容

接下来,由于已经将/rest/*映射到Jersey servlet,因此需要将其添加到路径中

然后,由于您已经在PersolationService类中指定了@Path(“Persolation”),因此您还需要将其添加到url中

由于您将方法进一步映射到@Path(“/name/{i}”),因此您的url变成:

http://localhost:8080/RestfulWS/rest/persolazation/name/Deep
(或您想提供的任何名称)


注意,尽管您的web.xml中有
RESTfulWS
,但它不会影响您的url或上下文根目录。您将在Tomcat Manager中看到该名称作为web应用程序的名称,但web应用程序上下文根将基于war文件的名称

你试过@Path(“/persolalization”)吗?对我很有用。同时检查您的webapp“Context root”。应该是“项目属性->Web项目设置”中的“RESTfulWS”。默认情况下,它是您项目的名称。大家好,谢谢您的回复。我使用了你们建议的完整URL。没用。当我将方法中的@products从MediaType.TEXT_XML更改为“application/XML”或“TEXT/XML”时,问题得到了解决。我使用的是Jersey版本1.17.1。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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">   
  <display-name>RESTfulWS</display-name>   
  <servlet>   
    <servlet-name>Jersey REST Service</servlet-name>   
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>   
    <init-param>   
      <param-name>com.sun.jersey.config.property.packages</param-name>   
      <param-value>com.test.rest.service</param-value>   
    </init-param>   
    <load-on-startup>1</load-on-startup>   
  </servlet>   
  <servlet-mapping>   
    <servlet-name>Jersey REST Service</servlet-name>   
    <url-pattern>/rest/*</url-pattern>   
  </servlet-mapping>   
</web-app>  
Catalina.out logs are below -
INFO: Deploying web application archive /usr/local/tomcat/apache-tomcat-7.0.47/webapps/RestfulWS.war
Dec 26, 2013 11:56:08 AM com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:
  com.test.rest.service
Dec 26, 2013 11:56:08 AM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Root resource classes found:
  class com.test.rest.service.PersolazationService
Dec 26, 2013 11:56:08 AM com.sun.jersey.api.core.ScanningResourceConfig init
INFO: No provider classes found.
Dec 26, 2013 11:56:08 AM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
INFO: Initiating Jersey application, version 'Jersey: 1.17.1 02/28/2013 12:47 PM'
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.