如何使用 Apache Jersey 在 REST 句柄的 POST 中捕获哈希图
我希望在我的 POST 处理程序中捕获这种格式的 XML (HashMap)
<entries>
<entry>
<id>1</id>
<labels>
<label>label1</label>
<label>label2</label>
...
</labels>
<entry>
...
<entries>
我希望使用 Apache Jersey 的 POST 处理程序看起来像这样
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public void createEntries(@MagicAnnotation HashMap<id, List<label>> entryMap){
}
我能得到的最接近的是什么?
我愿意接受 HashMap 到 XML 的更好表示。我只是不想手动解析 xml 并且也想捕获等效的 JSON。 我不确定是否可以使用某些 JAXBElement 来代替球衣注释。
I wish to catch an XML (HashMap) of this format in my POST handler
<entries>
<entry>
<id>1</id>
<labels>
<label>label1</label>
<label>label2</label>
...
</labels>
<entry>
...
<entries>
I wish my POST handler using Apache Jersey to look like this
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public void createEntries(@MagicAnnotation HashMap<id, List<label>> entryMap){
}
What is the closest I can get to this?
I am open to a better representation of a HashMap to XML. I just don't wish to parse xml manually and want to catch equivalent JSON as well.
I am not sure if some JAXBElement can be used instead of jersey annotation.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不应该以这种方式访问 POST 正文。
您必须定义几个类才能让 Jersey 解析 XML 响应。
您的代码将如下所示:
为了使这项工作有效,条目必须与 JAXB 兼容:
啊,Jersey 不是来自 Apache,而是来自 Sun。
Your are not supposed to access the POST body this way.
You have to define several classes to let Jersey parse the XML response.
Your code will look like:
To make this work Entries have to be JAXB compatible:
Ah, and Jersey is not from Apache but from Sun.