发生 JAXBException:从 Postman 客户端调用 Rest 服务时出现意外元素

JAXBException occurred : unexpected element while calling Rest Service from Postman client

我有一个使用 Spring 和 CXF 编写的休息服务。方法如下图

@POST
@Path("/detail")
public StudentResponse getStudentDetails(Student student);

学生Class.

@XmlRootElement(name="Student")
public class Student implements Serializable{
...

我可以使用 cxf 客户端调用该服务

WebClient client = WebClient.create("http://localhost:8180/oauthserver/service/student/detail");
            client.type("application/json").accept("application/json");
            Response response =client.post(s);

            StudentResponse sr = response.readEntity(StudentResponse.class);

我发布的数据(使用 jackson 生成 json 条目)

  {
      "name" : "input",
      "id" : 1,
      "marks" : 20.2
    }

但是在为 SoapUI 从 PostMan 调用服务时出现以下错误。

        JAXBException occurred : unexpected element (uri:"", local:"name"). 
    Expected elements are <{}Student>.
 unexpected element (uri:"", local:"name"). Expected elements are <{}Student>.

我正在调用 POST 方法和上下文类型 RAW.I 已将 header 值设置为此:

Content-Type : application/json
Accept : application/json

但仍然无法正常工作。有什么指点吗?

只为面临相同问题的任何人发布此信息。

我必须将 jackson 提供商添加到服务列表中

<jaxrs:providers>
            <bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />
        </jaxrs:providers>

然后需要添加maven依赖(新版本会有不同的包依赖)

<dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-jaxrs</artifactId>
            <version>1.9.0</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.13</version>
        </dependency>

此页面有解决方案... http://cxf.apache.org/docs/jax-rs-data-bindings.html