【问题标题】:Sending JSON Request to restful weservice to JAXB object将 JSON 请求发送到 restful weservice 到 JAXB 对象
【发布时间】:2015-02-16 03:39:23
【问题描述】:

我的 Web 服务使用“text/xml”并生成“text/xml”。我在请求正文中发送请求参数,如下所示

<?xml version="1.0"?>
<sx1:user xmlns:sx1="http://www.abcd.com/service/user/dto" xmlns:sx2="http://www.abcd.com/service/common/student/dto">
<sx1:getUserType>
<sx1:username>user1</sx1:username>
<sx1:userexists>true</sx1:userexists>
<sx1:student/>
</sx1:getUserType>
</sx1:user>

我想对 JSON 格式做同样的事情。

在 jersey-jackson jar 的帮助下,我可以生成 JSON 作为响应 通过使用@Consumes("text/xml")

@Produces("text/xml")

所以我的问题是如何将 JSON 请求发送到我的服务(这是一个从我的带有命名空间的 xsd 编译的 JAXB 对象)

【问题讨论】:

    标签: java xml json rest jaxb


    【解决方案1】:

    如果你想发送 JSON 文件,

    请将适当的 JSON 文件发送到 Rest 服务,并将当前对应的 JaxB 对象作为该服务的参数。 REST 将自动处理 Marshelling 和 unmarshelling。请确保,您需要更改

    @Consumes(值=MediaType.APPLICATION_XML) @Produces(value=MediaType.APPLICATION_XML)

    确保 JSON 根据 JaxB 正确

    【讨论】:

    • 根据您的建议,当我发送 json 请求时,响应为空。 json 格式 { "getUserType" : { "username":"user1","userexists":true,"student":null}}
    • 你能更新你的代码 sn-p 让我更容易理解吗?理想情况下,这应该有效。可能是 JAXB Marshelling/UnMarshelling 的问题
    【解决方案2】:

    当我使用 genson jar 时,它会自动反序列化请求并形成一个 java 对象,我的资源会消耗给定 mediaType 中的请求

    【讨论】:

      猜你喜欢
      • 2016-02-13
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      • 2021-10-20
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多