在 Apache CXF REST 服务中提交 JSON 数据作为请求正文
Submit JSON data as request body in an Apache CXF REST Service
我知道之前有人问过这个问题,但是经过多次回答并没有帮助我解决我的问题。所以这里是:我是一个尝试使用 Apache CXF 创建 REST 服务的新手。我正在尝试编写一个 POST 方法并在请求正文中将数据作为 JSON 发送(使用 Google Chrome 中的 POSTMAN 来执行此操作) .
我的界面看起来像这样:
@Path("/")
@Produces("application/json")
public interface MyService{
@POST
@Path("/addNote/{id}")
@Consumes("application/json")
NoteResponse addNote(@PathParam("id") Long id, @QueryParam("note")Note note);
// OTHER @GET METHODS THAT WORK WELL
}
我的实现:
@WebService(name = "testservice")
public class MyServiceImpl implements MyService{
@Override
public NoteResponse addNote(Long id, Note note){
// SOME IMPLEMENTATION
}
// OTHER @GET METHOD IMPLEMENTATIONS THAT WORK
}
我在一些答案中读到我不需要在我的笔记注释上使用 @QueryParam,而只是将 @XMLRootElement 放在我的笔记上 class,但这样做并继续尝试 localhost:8080/rest/addNote/1 不会调用我的 addNote 方法。
我现在面临的问题是note参数为null。
这是我通过 POSTMAN 发送的 JSON:
{
"note":{
"id": 4958,
"anotherId": 7886,
"comment": "salut",
"mail": "mail@mail.com",
"gregorianDate": "01-01-2016",
"type": "INFO"
}
}
请尝试更改 API 的接口定义 addNote:
NoteResponse addNote(@PathParam("id") Long id, Note note);
并通过 POSTMAN 发送此 JSON 字符串:
{
"id": 4958,
"anotherId": 7886,
"comment": "salut",
"mail": "mail@mail.com",
"gregorianDate": "01-01-2016",
"type": "INFO"
}
这应该有效。
我知道之前有人问过这个问题,但是经过多次回答并没有帮助我解决我的问题。所以这里是:我是一个尝试使用 Apache CXF 创建 REST 服务的新手。我正在尝试编写一个 POST 方法并在请求正文中将数据作为 JSON 发送(使用 Google Chrome 中的 POSTMAN 来执行此操作) .
我的界面看起来像这样:
@Path("/")
@Produces("application/json")
public interface MyService{
@POST
@Path("/addNote/{id}")
@Consumes("application/json")
NoteResponse addNote(@PathParam("id") Long id, @QueryParam("note")Note note);
// OTHER @GET METHODS THAT WORK WELL
}
我的实现:
@WebService(name = "testservice")
public class MyServiceImpl implements MyService{
@Override
public NoteResponse addNote(Long id, Note note){
// SOME IMPLEMENTATION
}
// OTHER @GET METHOD IMPLEMENTATIONS THAT WORK
}
我在一些答案中读到我不需要在我的笔记注释上使用 @QueryParam,而只是将 @XMLRootElement 放在我的笔记上 class,但这样做并继续尝试 localhost:8080/rest/addNote/1 不会调用我的 addNote 方法。
我现在面临的问题是note参数为null。
这是我通过 POSTMAN 发送的 JSON:
{
"note":{
"id": 4958,
"anotherId": 7886,
"comment": "salut",
"mail": "mail@mail.com",
"gregorianDate": "01-01-2016",
"type": "INFO"
}
}
请尝试更改 API 的接口定义 addNote:
NoteResponse addNote(@PathParam("id") Long id, Note note);
并通过 POSTMAN 发送此 JSON 字符串:
{
"id": 4958,
"anotherId": 7886,
"comment": "salut",
"mail": "mail@mail.com",
"gregorianDate": "01-01-2016",
"type": "INFO"
}
这应该有效。