CXF是一個開源的web服務框架,它提供了實現JAX-WS和JAX-RS規范的工具和庫。在CXF 3.1中,我們可以使用CXF來處理JSON格式的數據。
首先,在我們的項目中引入CXF 3.1的依賴:
<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxrs</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http-jetty</artifactId> <version>3.1.0</version> </dependency>
然后,我們可以在服務端使用CXF提供的JAX-RS API來處理JSON數據:
@Path("/test") public class TestService { @POST @Path("/json") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public TestResponse testJson(TestRequest request) { // process request TestResponse response = new TestResponse(); response.setResult("success"); return response; } }
在這個例子中,我們使用JAX-RS的@Path注解來定義API路徑,使用@POST注解來指定請求方法為POST,使用@Consumes和@Produces注解來指定請求和響應的數據格式為JSON。
最后,在客戶端使用CXF提供的JAX-RS客戶端API來發送JSON請求:
public void testJson() { WebClient client = WebClient.create("http://localhost:8080/test/json"); client.type(MediaType.APPLICATION_JSON); client.accept(MediaType.APPLICATION_JSON); TestRequest request = new TestRequest(); request.setName("test"); TestResponse response = client.post(request, TestResponse.class); System.out.println(response.getResult()); }
在這個例子中,我們通過WebClient創建一個JAX-RS客戶端并指定請求和響應的數據格式為JSON。然后,我們使用post方法發送JSON請求并將返回的JSON結果轉換成TestResponse對象。
通過CXF 3.1,我們可以方便地處理JSON數據,并且與JAX-RS的整合讓我們可以更便捷地開發RESTful API。