Resteasy - GET方法 - 传递XML

时间:2012-01-27 15:19:27

标签: xml get jaxb resteasy

我正在尝试在Resteasy中实现GET方法。我无法使用QueryParam,因为有许多搜索参数,包括复杂类型。所以我想到了使用XML。在下面的代码中,请求和响应都是从schema生成的JAXB类。我的问题是客户端如何传递请求xml?

@GET
@Path("search")
@Produces(MediaType.APPLICATION_XML)
@Consumes(MediaType.APPLICATION_XML)
public SearchResponse searchTasks(SearchRequest searchReq)
{

这是我用Jersey创建的示例客户端。当我打电话时,我得到“415不支持的媒体类型”。我是否正确传递XML?是否可以将XML参数发送到GET方法?

    webResource.accept(MediaType.APPLICATION_XML);
    webResource.type(MediaType.APPLICATION_XML);

    webResource.entity(req,MediaType.APPLICATION_XML);

    SearchResponse return1 = webResource.get(SearchResponse.class); 

我正在Tomcat中部署它。

感谢您对此进行调查。

1 个答案:

答案 0 :(得分:1)

导致错误的原因是您在发出请求时没有设置Content-Type标头。确保将其设置为Content-Type: application/xml

另外,GET请求通常没有请求正文,尽管有可能。我suggest against including one,而是使用POST方法。