调试Jersey Unmarshalling错误 - 错误请求在语法上不正确

时间:2012-03-12 00:21:36

标签: rest glassfish xml-parsing jersey

我正在Jersey on Glassfish的帮助下构建一个REST Web服务。现在我正在使用我的searchQuerys的自定义输入源。

如果有搜索方法:

@POST
@Path("search")
@Consumes({"application/xml", "application/json"})
@Produces({"application/xml", "application/json"})
public List<Index> search(SearchQuery searchqry) {
   ...
}

Class SearchQuery:

@XmlRootElement
public class SearchQuery implements Serializable {
    private static final long serialVersionUID = 1L;

    public SearchQuery() {
    }

    public SearchQuery(float lat, float lng) {
        this.lat = lat;
        this.lng = lng;
    }

    public float getLat() {
        return lat;
    }

    public void setLat(float lat) {
        this.lat = lat;
    }

    public float getLng() {
        return lng;
    }

    public void setLng(float lng) {
        this.lng = lng;
    }

    private float lat;
    private float lng;
}

我的电话:

curl -v -X POST --data-binary "<SearchQuery><lat>3.3</lat><lng>5.4</lng></SearchQuery>" -H "Content-Type: application/xml" -H "Accept: application/xml" http://localhost:8080/WebApplication1/resources/index/search

我尝试了一个restconsole来发送XML请求,但是我得到了同样的错误:

  

HTTP状态400 - 错误请求


类型状态   报告

消息错误请求

des cription   客户端发送的请求语法不正确(错误   请求)。


GlassFish Server开源版   3.1.2

*关闭连接#0

我基本上缺少一些东西,或者有人能给我一个提示如何调试Application Server中的解组部分?

我按照http://xebee.xebia.in/2011/12/30/example-of-restful-webservice-with-xml-and-json-using-maven-jaxb-jersey-tomcat-and-curl/的指南进行了操作 并测试了注释的varius组合但没有成功:(

1 个答案:

答案 0 :(得分:1)

最终找到了我的问题的真正原因: SearchQuery 映射到XML

中的“ searchQuery

TESTClass 映射到XML实体内的 tESTClass