【问题标题】:Debugging Jersey Unmarshalling Error - Bad Request syntactically incorrect调试 Jersey Unmarshalling 错误 - 语法错误的错误请求
【发布时间】:2012-03-12 00:21:35
【问题描述】:

我正在 Glassfish 上的 Jersey 的帮助下构建一个 REST Web 服务。现在我正在为我的 searchQuerys 的自定义输入源而苦苦挣扎。

如果有搜索方法:

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

还有类 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 - 错误请求


类型状态 报告

消息错误请求

描述 客户端发送的请求在语法上不正确(错误 请求)。


GlassFish 服务器开源版 3.1.2

* 关闭连接#0

我基本上遗漏了一些东西,或者有人可以提示我如何调试应用程序服务器中的解组部分吗?

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

【问题讨论】:

  • 您正在返回一个索引对象列表。这个类(索引)是否可序列化,并用@XMLRootElement 标记?
  • @BWitched jep,我还测试了以 void 作为返回值的方法,仍然不起作用:(
  • 也许您已经尝试过了,但是您是否捕获了发送的 http 包(或者更好的是,到达服务器的那个)?只是为了确保它是 100% 正确的。另一个想法,我在 Jersey 遇到了一些问题,在路径的开头添加一个“/”得到了解决:@Path("/search")
  • 看来您需要为服务器提供正确的内容类型:curl ... -H "Content-Type: application/xml"
  • @dma_k 我已经在最后的 curl 语句中发送了 ContentType,+Bwitched 使用 /search 对其进行了测试,仍然没有,我将继续使用 whireshark 进行测试,看看发布到服务器的内容。

标签: rest glassfish xml-parsing jersey


【解决方案1】:

终于找到了我的问题的真正原因: SearchQuery 映射到 XML 中的“searchQuery

TESTClass 映射到 XML 实体中的 tESTClass

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-17
    • 2013-09-03
    • 1970-01-01
    • 2019-01-15
    • 2011-06-14
    • 1970-01-01
    • 2012-03-17
    相关资源
    最近更新 更多