CXF是一款流行的Java Web服務(wù)框架,它支持多種數(shù)據(jù)格式的傳輸,包括XML、JSON和SOAP等。在使用CXF時(shí),我們可以通過指定數(shù)據(jù)格式來定制我們的API接口,本文將介紹如何在CXF中指定JSON數(shù)據(jù)格式。
首先,我們需要在CXF服務(wù)端添加Jackson JAX-RS Provider依賴,這是一款支持JSON數(shù)據(jù)格式的Provider。我們可以在pom.xml中添加如下依賴:
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>2.8.10</version>
</dependency>
接下來,我們要在CXF服務(wù)端的Spring配置文件中添加以下bean定義:
<bean id="jsonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider">
</bean>
<jaxrs:server id="restContainer" address="/">
<jaxrs:providers>
<ref bean="jsonProvider" />
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref bean="yourServiceBean" />
</jaxrs:serviceBeans>
</jaxrs:server>
其中,"yourServiceBean"為你的服務(wù)實(shí)現(xiàn)類所定義的bean。
最后,在服務(wù)端的API接口上注解@Produces("application/json"),以指定返回JSON格式的數(shù)據(jù)。例如:
@Produces("application/json")
@GET
@Path("/getUser")
public User getUser(@QueryParam("id") String id) {
// do something
}
這樣,我們就可以在CXF中成功指定JSON數(shù)據(jù)格式了。