发生 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
我有一个使用 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