我正在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组合但没有成功:(
答案 0 :(得分:1)
最终找到了我的问题的真正原因: SearchQuery 映射到XML
中的“ searchQuery ”TESTClass 映射到XML实体内的 tESTClass