- 浏览: 1031163 次
- 性别:
- 来自: 郑州
文章分类
- 全部博客 (605)
- 数据挖掘 (22)
- spring (40)
- 工具使用 (39)
- java (137)
- JavaScript (40)
- webwork (12)
- web (120)
- 资源 (7)
- SSH (5)
- oracle (20)
- J2ME (1)
- 环境配置 (37)
- 项目管理 (29)
- mysql (14)
- struts (4)
- 项目总结 (27)
- ibatis学习 (33)
- 学习计划 (2)
- 缓存 (7)
- 重构 (3)
- Android (1)
- jquery (12)
- UML (3)
- 用户体验 (4)
- 习惯 (7)
- sakai (1)
- urlrewrite (4)
- rss (5)
- C plus plus (5)
- 算法 (5)
- 海量数据处理 (7)
- office(word、excel) (1)
- 面试题 (3)
- solr (8)
- 大数据 (2)
最新评论
-
hujin19861102:
截图看不见,最后一个webwrok的配置看不见
Ext+Webwork+Json 实现分页表格查询效果 -
蜗牛笔:
弱弱的问一句,要是分出来的词在词典中没有,那么两部分的pos- ...
ICTCLAS 中科院分词系统 -
weipeng1986:
授人予鱼不如授人予鱼,我想问你的是你是怎么总结的。比如第四种情 ...
JAVA中字符串连接效率的测试 -
xiaoqiang2008:
执行两次的原因是什么,好像楼主没弄清楚啊!是不是在web.xm ...
关于Spring中用quartz定时器在定时到达时同时执行两次的问题 -
Kent_Mu:
...
ibatis-dynamic的用法
由于日志没有图片功能,可以访问内部论坛:
host配置: 192.168.5.245 forum.xxt.cn
文章连接: http://forum.xxt.cn/posts/list/0/276.page
spring 整合hessian进行远程通讯
Hessian是使用HTTP将对象以中性的二进制消息进行传送,而不像RMI使用Java的序列化格式,由于二进制消息是中性的,因此不受限于某种程序语言所实现的客户端或服务器端,二进制数据在传输是所需要的带宽较小是其优点。
由于Hessian是通过HTTP传送的,所在使用时需要WEB框架,在使用spring 时,即就是需要使用DispatcherServlet,下面通过一个实例来展示hessian与spring整合使用。
一.首先介绍一下此实例的环境
1、 tocmat: tomcat5.5
2、 java: jdk1.5.0_12
3、 eclipse: eclipse 3.2.0
4、 spring: 2.55
二.服务器端程序
1. 先看程序的目录结构:(如图1)
2. 新建tomcat工程:
3. 添加jar包,路径构建:
备注:spring的版本,请从下载的官网上下载。
spring.jar : spring-framework-2.5.5\dist
hessian.jar : spring-framework-2.5.5\lib\caucho
4. 文件详单:
(1) cn.xxt.service.IuserService.java
package cn.xxt.service;
import java.util.List;
/**
* hessian 服务接口,取出用户姓名接口
* @author zhaoguoli
* @version V1.0 2010-09-30
*/
public interface IUserService {
public List getUsernames();
}
(2) cn.xxt.service.impl.UserService.java
package cn.xxt.service.impl;
import java.util.ArrayList;
import java.util.List;
import cn.xxt.service.IUserService;
/**
* hessian 服务实现,取出用户姓名列表
* @author zhaoguoli
* @version V1.0 2010-09-30
*/
public class UserService implements IUserService {
public List getUsernames() {
List<String> usernames = new ArrayList<String>();
usernames.add("zhaoguoli");
usernames.add("wanglei");
usernames.add("yinzhuangzhuang");
return usernames;
}
}
(3) WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>remoting</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>remoting</servlet-name>
<url-pattern>/remoting/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
(4) WEB-INF/applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="userservicetarget" class="cn.xxt.service.impl.UserService"/>
</beans>
(5) WEB-INF/ remoting-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean name="/Userservice-hessina" class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="service">
<ref bean="userservicetarget"/>
</property>
<property name="serviceInterface">
<value>cn.xxt.service.IUserService</value>
</property>
</bean>
</beans>
至此,服务器代码已经完毕。
三. 客户端代码
1. 先查看程序的目录结构:(如图2)
2. 新建java工程
3. 添加jar包,路径构建
4. 文件详单
(6) cn.xxt.service.IuserService.java
package cn.xxt.service;
import java.util.List;
/**
* hessian 服务接口,取出用户姓名接口
* @author zhaoguoli
* @version V1.0 2010-09-30
*/
public interface IUserService {
public List getUsernames();
}
(7) cn.xxt.client.HessinaClient.java
package cn.xxt.client;
import java.util.List;
import cn.xxt.service.IUserService;
/**
* hessian 测试 客户端
* @author zhaoguoli
* @version V1.0 2010-09-30
*/
public class HessinaClient {
private IUserService userservice;
public IUserService getUserservice() {
return userservice;
}
public void setUserservice(IUserService userservice) {
this.userservice = userservice;
}
public List getUsernames() {
return this.userservice.getUsernames();
}
}
(8) cn.xxt.client.HessianTest.java
package cn.xxt.client;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* hessian 客户端 调用
* @author zhaoguoli
* @version V1.0 2010-09-30
*/
public class HessianTest {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"applicationContext.xml");
HessinaClient hessina = (HessinaClient) ctx.getBean("hessinaclient");
System.out.println("hessinaclient:" + hessina.getUsernames());
}
}
(9) src/applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location"><value>client.properties</value></property>
</bean>
<bean id="hessinaclient" class="cn.xxt.client.HessinaClient">
<property name="userservice">
<ref
- spring整合hessian进行远程通讯.rar (45.8 KB)
- 下载次数: 38
发表评论
-
spring 测试框架与维护项目结合问题
2011-11-02 02:18 1139之前项目中一直用 junit进行单元测试,使用的版本一直是ju ... -
数据日志记录讨论
2011-10-26 18:51 923详情见附件中的PPT -
spring+ibatis注解方式注入
2011-10-15 17:24 990http://www.cnblogs.com/archie20 ... -
spring 注解 简化log4j配置
2011-10-09 23:40 916http://macrochen.iteye.com/blog ... -
spring 2.5 TestContext 测试框架
2011-10-09 19:18 6272大多同事都已经养成用j ... -
spring2.5 引入资源文件的方式
2011-10-09 16:55 1052以前项目中引入 数据库 连接相关的字符串 都是使用 &l ... -
Spring 配置中的 default-lazy-init="false"
2011-09-26 18:03 1825Spring 配置中的 default-lazy-init=& ... -
webwork+spring+ibatis注解培训文档
2011-08-15 17:26 1362今天整理了 spring 注解的使用,主要是结合公司 ... -
spring包详解 (转)
2010-11-18 17:25 861spring.jar是包含有完 ... -
远程调用 - spring+rmi
2010-09-26 22:29 1196Spring提供类用于集成各种远程访问技术。这种对远程访问的支 ... -
事务处理spring
2010-03-24 22:33 980http://www.ibm.com/developerwor ... -
在并发情况下struts2与spring 组合需要注意的问题
2010-03-24 19:53 2074在并发情况下struts2与spring 组合需要注意的问题 ... -
Spring2.0框架的事务处理
2010-03-11 22:04 974http://www.iteye.com/topic/328 ... -
使用import简化spring的配置文件
2010-01-28 18:13 1106对于spring配置文件的编 ... -
Spring 中的数据源 转载
2010-01-25 18:17 1182http://www.blogjava.net/masen ... -
Spring事务配置的五种方式(转)
2010-01-25 17:32 803转载自: http://www.blogjava.net ... -
spring 2.5 事务属性
2010-01-25 15:59 1576spring事务的属性 转载自http://zhangli-l ... -
spring 2.5 事务管理
2010-01-25 15:57 2003spring2.5的事物管理,分为两种方式,一是基于注解方式的 ... -
事务传播属性(转)
2010-01-25 15:53 1158事务的传播行为和隔离级别[transaction behavi ... -
spring aop execution pointcut 表达式
2010-01-25 13:02 2290Spring AOP 用户可能会经常使用 executio ...
相关推荐
NULL 博文链接:https://elim.iteye.com/blog/1869488
使用eclipse maven工程搭建hessian远程服务demo 分服务端的整合和客户端 建议阅读相关博客http://blog.csdn.net/heisemuyangquan/article/details/79460528
struts2+ibatis+spring+Hessian 整合项目 web项目整合,服务端用hessian协议远程调用服务端的方法,hessian是用spring代理整合,struts2+ibatis+spring的整合项目,用作学习和开发基础平台构建很有用处,工程导入...
纯Hessian的入门例子教程,还有Hessian和Spring整合的例子教程。 代码上传之前都运行通过的
Spring为各种远程访问技术提供集成工具类。Spring远程访问通过使用普通POJOs,能更容易的开发远程访问服务。目前,Spring远程访问的主要技术如下: 1. 远程调用RMI(Remote Method Invocation): 通过使用 ...
Hessian是一个轻量级的remoting on http工具,使用简单的方法提供了RMI(Remote Method Invocation,远程方法调用)的功能。采用的是二进制RPC(Remote Procedure Call Protocol,远程过程调用协议)协议,因为采用...
本示例是hessian与spring整合的,客户端与服务端相互调用的最完整例子。
(9) spring-remoting.jar 这个jar文件包含支持EJB、JMS、远程调用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。 (10) spring-support.jar 这个jar文件包含支持缓存Cache(ehcache)、JCA、...
spring jar 包详解spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了 spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到spring-mock.jar来进行辅助测试,正式应用系统...
这个jar文件包含支持EJB、JMS、远程调用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。 (10) spring-support.jar 这个jar文件包含支持缓存Cache(ehcache)、JCA、JMX、邮件服务(Java ...
17. 使用Spring进行远程访问与Web服务 17.1. 简介 17.2. 使用RMI暴露服务 17.2.1. 使用 RmiServiceExporter 暴露服务 17.2.2. 在客户端链接服务 17.3. 使用Hessian或者Burlap通过HTTP远程调用服务 17.3.1. 为...
远程(Remoting) Spring 提供了一致的使用方式,即使所采用的远程服务技术不尽相同,在 Spring 中运用它们的方式却是一致的。 RMI Hessian、 Burlap Http Invoker <br>邮件 对于邮件发送...
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...
4.4 用Spring整合Hibernate 4.4.1 Hibernate概览 4.4.2 管理Hibernate资源 4.4.3 用HibernateTemplate访问Hibernate 4.4.4 HibernateDaoSupport的子类 4.5 Spring和JDO 4.5.1 配置JDO ...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
17. 使用Spring进行远程访问与Web服务 17.1. 简介 17.2. 使用RMI暴露服务 17.2.1. 使用 RmiServiceExporter 暴露服务 17.2.2. 在客户端链接服务 17.3. 使用Hessian或者Burlap通过HTTP远程调用服务 17.3.1. 为...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
8.3使用hessian和burlap的远程调用 8.3.1访问hessian/burlap服务 8.3.2用hessian或burlap公开bean的功能 8.4使用httpinvoker 8.4.1通过http访问服务 8.4.2把bean作为http服务公开 8.5spring和web服务 8.5.1...