使用动态代理实现一个简单web客户端

前言

本文示例是在Apache-CXF的ja-rx-basic项目上进行改造。服务端的代码直接使用这个项目的代码,无需重新编写。

基本

同之前写jersey-client的步骤流程差不多(http://blog.youkuaiyun.com/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)的响应内容的输出。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值