[英]How to submit JSON data as request body in Apache CXF jax-rs (REST)
[英]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,但是這樣做並嘗試進入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"
}
這應該工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.