Spring HTTP invoker 简介 Spring HTTP invoker 是 spring 框架中的一个远程调用模型,执行基于 HTTP 的远程调用(意味着可以通过防火墙),并使用 java 的序列化机制在网络间传递对象。客户端可以很轻松的像调用本地对象一样调用远程服务器上的对象,这有点类似于 webservice ,但又不同于 webservice ,区别如下: w ebservice HTTP invoker 跨平台,跨语言 只支持 java 语言 支持 SOAP ,提供 wsdl 不支持 结构庞大,依赖特定的 webservice 实现,如 xfire 等 结构简单,只依赖于 spring 框架本身 项目中使用哪种远程调用机制取决于项目本身的要求。 ² HTTP invoker 服务模式 说明: 1. 服务器端:通过 HTTP invoker 服务将服务接口的某个实现类提供为远程服务 2. 客户端:通过 HTTP invoker 代理向服务器端发送请求,远程调用服务接口的方法 3. 服务器端与客户端通信的数据需要序列化 配置服务器端和客户端的步骤 配置服务器端 1. 添加 springJAR 文件 建议使用 spring2+.jar 版本 2. 创建服务接口 3. 创建服务接口的具体实现类 4. 公开服务 配置客户端 1. 添加 springJAR 文件 建议使用 spring2+.jar 版本 2. 创建服务接口 3. 访问服务 实例讲解 服务器端 1. 服务接口: UcService.java 它提供两项服务,查询用户信息和记录日志,如下: public interface UcService { public UserInfo getUserInfobyName(String userName); public int recordLog(String username, String point, String operate, String desc); } 说明:举这个列子是因为其比较有代表性,它将展示普通数据类型( int,long 等)和复杂数据类型( DTO 等)的远程调用方式。 UserInfo 是一个普通的 DTO ,代码如下: public class UserInfo implements Serializable { private static final long s erialVers ionUID = -6970967506712260305L; /** 用户名 */ private String userName ; /** 电子邮箱 */ private String email ; /** 注册日期 */ private Date registDate ; public String getUserName() { return userName ; } public void setUserName(String userName) { this . userName = userName; } public String getEmail() { return email ; } public void setEmail(Stri...