Spring HTTP Invoker 学习小记
2015-06-09 17:15
471 查看
Spring HTTP Invoker是spring框架中的一个远程调用模型,执行基于HTTP的远程调用,也就是说,可以通过防火墙,并使用java的序列化机制在网络间传递对象。客户端可以很轻松的像调用本地对象一样调用远程服务器上的对象,要注意的一点是,服务端、客户端都是使用Spring框架。下面通过一个例子,来
讲解Spring HTTP Invoker的使用,这里使用的是 Spring2.5.6 框架。
Spring HTTP Invoker的整体流程如下 (下图显示整个调用的过程)
客户端
向服务器发送远程调用请求
远程调用信息-->封装为远程调用对象-->序列化写入到远程调用http请求中-->向服务器端发送
接收服务器端返回的远程调用结果
服务器端返回的远程调用结果HTTP响应——>反序列化为远程调用结果对象
服务端
接收客户端发送的远程调用请求
客户端发送的远程调用HTTP请求——>反序列化为远程调用对象——>调用服务器端目标对象的目标方法处理
向客户端返回远程调用结果
服务器端目标对象方法的处理结果——>序列化写入远程调用结果HTTP响应中——>返回给客户端。
![](http://static.oschina.net/uploads/space/2013/0405/165142_lI7D_944787.jpg)
Spring
HTTP Invoker有两种实现方式
基于Url映射方式,远程系统处理请求的方式同SpringMVC的controller类似,所有的请求通过在web.xml中的 org.springframework.web.servlet.DispatcherServlet统一处理,根据url映射,去对应的
【servlet名称-servlet.xml】文件中,查询跟请求的url匹配的bean配置
基于Servlet方式,由org.springframework.web.context.support.HttpRequestHandlerServlet去拦截url- pattern匹配的请求,如果匹配成功,去ApplicationContext中查找name与servlet-name一致的bean,完成远程方法调用。
这里采用第一种方式进行实现。先配置服务端
建立web项目
导入jar包
spring.jar
spring-webmvc.jar
commons-logging-1.1.2.jar
在web.xml新增如下配置文件
?
在WEB-INF下增加application-servlet.xml (注意xml文件的命名,这里的application要和servlet-name名字保持一致)配置如下
?
建立相关类和包结构,如下图所示
![](http://static.oschina.net/uploads/space/2013/0405/155337_qXWD_944787.jpg)
各类代码如下
User类,需要实现Serializable 接口
?
UserService接口
?
UserService接口的实现类UserServiceImpl
?
配置客户端
复制服务端工程,重命名一下,工程结构如下图
![](http://static.oschina.net/uploads/space/2013/0405/154957_qbyt_944787.jpg)
在src目录下新建application-servlet.xml配置如下
?
新建测试类TestSpringHttp代码如下
?
运行程序在控制台输出如下
![](http://static.oschina.net/uploads/space/2013/0405/155135_spYR_944787.jpg)
参考文章
HTTP Invoker例子
《Spring技术内幕》学习笔记17——Spring
讲解Spring HTTP Invoker的使用,这里使用的是 Spring2.5.6 框架。
Spring HTTP Invoker的整体流程如下 (下图显示整个调用的过程)
客户端
向服务器发送远程调用请求
远程调用信息-->封装为远程调用对象-->序列化写入到远程调用http请求中-->向服务器端发送
接收服务器端返回的远程调用结果
服务器端返回的远程调用结果HTTP响应——>反序列化为远程调用结果对象
服务端
接收客户端发送的远程调用请求
客户端发送的远程调用HTTP请求——>反序列化为远程调用对象——>调用服务器端目标对象的目标方法处理
向客户端返回远程调用结果
服务器端目标对象方法的处理结果——>序列化写入远程调用结果HTTP响应中——>返回给客户端。
![](http://static.oschina.net/uploads/space/2013/0405/165142_lI7D_944787.jpg)
Spring
HTTP Invoker有两种实现方式
基于Url映射方式,远程系统处理请求的方式同SpringMVC的controller类似,所有的请求通过在web.xml中的 org.springframework.web.servlet.DispatcherServlet统一处理,根据url映射,去对应的
【servlet名称-servlet.xml】文件中,查询跟请求的url匹配的bean配置
基于Servlet方式,由org.springframework.web.context.support.HttpRequestHandlerServlet去拦截url- pattern匹配的请求,如果匹配成功,去ApplicationContext中查找name与servlet-name一致的bean,完成远程方法调用。
这里采用第一种方式进行实现。先配置服务端
建立web项目
导入jar包
spring.jar
spring-webmvc.jar
commons-logging-1.1.2.jar
在web.xml新增如下配置文件
?
?
![](http://static.oschina.net/uploads/space/2013/0405/155337_qXWD_944787.jpg)
各类代码如下
User类,需要实现Serializable 接口
?
?
?
复制服务端工程,重命名一下,工程结构如下图
![](http://static.oschina.net/uploads/space/2013/0405/154957_qbyt_944787.jpg)
在src目录下新建application-servlet.xml配置如下
?
?
![](http://static.oschina.net/uploads/space/2013/0405/155135_spYR_944787.jpg)
参考文章
Spring中HttpInvoker远程调用使用实例
SpringHTTP Invoker例子
《Spring技术内幕》学习笔记17——Spring
HTTP调用器实现远程调用
相关文章推荐
- Spring HTTP invoker简介
- Android 关于异步Http请求,以及编码问题
- wireshark如何过滤 http数据包
- Java Socket发送与接收HTTP消息简单实现
- nginx 同一个IP上配置多个HTTPS主机
- Linux(Ubuntu)的网络配置
- [Unity3D ARPG网络游戏编程实践]1——初识unity网络编程
- nginx+tcp
- 构建网络爬虫?so easy
- Linux常用网络工具:批量主机服务扫描之netcat
- 《 Web应用测试 》笔记(第4 章-网络基础)
- 【转】浅谈HTTP中Get与Post的区别
- Http协议
- 网络编程释疑之:TCP半开连接的处理(好)
- HttpURLConnection(一)
- http状态码
- 那些年我们踩到过的坑(二):3.1 版 MultiThreadedHttpConnectionManager 未releaseConnection导致应用服务器宕机
- http 304
- Android网络连接之HttpURLConnection和HttpClient
- 刚刚在看52单片机和GPS通信程序的时候,看到了一个函数,absacc.h,貌似从来没有遇到过,百度了一下,结合自己的理解,整理如下: http://blog.sina.com.cn/s/blog_4