在Web服務開發中,我們經常需要使用CXF框架來提供接口服務。而對于接口的參數傳遞方式,除了常見的XML傳輸,JSON也是一種非常流行的方式。因此,本文將介紹如何在CXF中使用JSON格式的參數傳遞。
首先,在CXF項目中引入以下依賴:
<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxrs</artifactId> <version>${cxf.version}</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> <version>${jackson.version}</version> </dependency>
其中,cxf-rt-frontend-jaxrs是CXF提供的JAX-RS實現,而jackson-jaxrs-json-provider則是實現JSON轉換的一個庫。
接下來,在CXF服務方法的參數前加上@RequestBody注解,表示這是一個JSON格式的參數:
@POST @Path("/save") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public Response save(@RequestBody User user) { // ... }
在上述示例中,我們定義了一個/save的接口,接收一個名為user的參數,并且該參數是JSON格式的??梢钥吹?,@RequestBody注解是用來標識參數類型的,表示參數來自請求體中,而不是路徑參數。
最后,就可以使用Postman等工具,向該接口發送JSON格式的請求了:
{ "username": "test", "password": "123456" }
至此,我們已經完成了CXF中使用JSON格式參數傳遞。