参考文档
http://cxf.apache.org/docs/jaxrs-services-description.html
获取项目
git@github.com: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