前言
本文示例是在Apache-CXF的ja-rx-basic项目上进行改造。服务端的代码直接使用这个项目的代码,无需重新编写。
基本
同之前写jersey-client的步骤流程差不多(http://blog.csdn.net/hongchh/article/details/52764509)。首先需要在demo.client包中新建一个类,ProxyClient.java。得到如下所示的文件结构:
然后是配置相关依赖。配置方法可以参考官网给出的介绍(http://cxf.apache.org/docs/jax-rs-client-api.html)。其实也不麻烦,就在pom.xml中加入相应的依赖即可,如下所示:
添加完依赖之后就可以开始客户端编程了。打开ProxyClient.java。import相关的包,然后根据官网的API介绍进行编写即可。下面是一个简单GET请求的示例:
这个时候你会发现,CustomerService这个类还有点问题。原因就是,如果使用代理,需要在服务端将CustomerService封装成一个接口,然后客户端使用这个接口来获知服务器提供的服务。
我们需要到demo.server包里面修改CustomerService.java的内容,将这个类改成一个接口。如下所示:
然后再创建一个新的类,CustomerServiceImpl,实现CustomerService。下面是部分代码截图:
好了,现在需要的内容基本度完善了。还有最后一点需要修改。那就是服务器的代码。打开Server.java,下面红框的那句代码,原本是创建一个CustomerService的实例,但现在CustomerService变成了一个接口,所以这里应该修改为创建一个CustomerServiceImpl的实例。
运行代码
跟之前的JerseyClient一样,这里也需要修改一下pom.xml的内容。如下图所示,修改红框处的那句话即可。
其余的步骤都跟之前JerseyClient一样,这里我便不再重复赘述了。下面直接上运行结果,一共有两个请求(GET/POST)的响应内容的输出。