参考文档

http://cxf.apache.org/docs/jaxrs-services-description.html

获取项目

[email protected]:witaste/cxf-2.7.6-server-client-wadl.git

说明:

2.7.6 生成了简单的wadl, 不能生成所需的bean?可以。关键点在@XmlRootElement

注意不适用于3.1.1

package cn.zno.pojo;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class News { private String title; private String content; public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
} public String getContent() {
return content;
} public void setContent(String content) {
this.content = content;
} }

指定服务器可以处理的类型

    @POST
@Path("/requestNews")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public News requestNews(Param param);

具体发送接收类型需要客户端自己指定

        // 创建客户端
WebClient client = WebClient
.create("http://localhost:8080/wadl/news/requestNews", provider)
.accept("application/json")
.type("application/json");

provider 有 json 和 xml 两种

        <jaxrs:providers>
<bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />
<bean class="org.apache.cxf.jaxrs.provider.JAXBElementProvider" />
</jaxrs:providers>

通过wadl生成bean。在client文件夹下执行wadl2java.bat 参数是wadl地址

E:\client>%CXF_HOME%\bin\wadl2java http://localhost:8080/wadl?_wadl
04-25 19:05