簡體   English   中英

在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,但是這樣做並嘗試進入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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM