用于restfulweb服务的javajersey

用于restfulweb服务的javajersey,java,eclipse,web-services,rest,jersey,Java,Eclipse,Web Services,Rest,Jersey,我正在使用JavaJersey为我的应用程序编写web服务,并且在配置方面遇到了一些问题。当我按以下方式呼叫我的服务时,它会说: 不允许使用消息方法 说明请求的资源不允许使用指定的HTTP方法(不允许使用方法) 样本请求: localhost:8080/MovieManager/rest/movies?movie_count=2&country_code=USA 以下是我的服务源文件和web.xml文件: package com.recommendation.movies; impo

我正在使用JavaJersey为我的应用程序编写web服务,并且在配置方面遇到了一些问题。当我按以下方式呼叫我的服务时,它会说:

不允许使用消息方法 说明请求的资源不允许使用指定的HTTP方法(不允许使用方法)

样本请求:

localhost:8080/MovieManager/rest/movies?movie_count=2&country_code=USA
以下是我的服务源文件和web.xml文件:

package com.recommendation.movies;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

@Path("/")
public class MovieData {

@GET
@Path("movies")
@Produces(MediaType.TEXT_PLAIN)
public String getMovies (@QueryParam("movie_count") int movieCount, @QueryParam("country_code") String countryCode) {

String moviesJson = null; // This has the JSON list of all movies returned by the external service
// DO SOMETHING...      
// returned the customized json string...
return moviesJson;
}
}

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" 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_2_5.xsd" id="WebApp_ID" version="2.5">

<display-name>Movie Manager</display-name>

<servlet>
<servlet-name>Get Top Box Office Movie Listing</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.recommendation.movies</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>Get Top Box Office Movie Listing</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>

电影经理
获得最高票房电影列表
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.config.property.packages
推荐电影
1.
获得最高票房电影列表
/休息/*

球衣的版本是什么

因为。。。我用过这个,它很管用

<servlet>
    <servlet-name>Jersey Web 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.test.application.sinister</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
并使用以下url:

 localhost:8080/MovieManager/rest/test/movies?movie_count=2&country_code=USA

奇怪的是,我是如何解决这个问题的,但下面是解决方案:

而不是使用:

 @Path("/")
当我将其替换为:

@Path("search_movie/")

并使用更新的URI调用API,它可以工作。

您是否
获取此URL?您是否接受
text/plain
?我只是在一个浏览器中运行它,我确信它会得到这个URL,并且应该能够接收任何文本/普通响应。您是否也看到“HTTP状态405-不允许使用方法”?
@Path("search_movie/")