- 浏览: 1052597 次
- 性别:
- 来自: 郑州
文章分类
- 全部博客 (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 1176之前项目中一直用 junit进行单元测试,使用的版本一直是ju ... -
数据日志记录讨论
2011-10-26 18:51 953详情见附件中的PPT -
spring+ibatis注解方式注入
2011-10-15 17:24 1038http://www.cnblogs.com/archie20 ... -
spring 注解 简化log4j配置
2011-10-09 23:40 984http://macrochen.iteye.com/blog ... -
spring 2.5 TestContext 测试框架
2011-10-09 19:18 6305大多同事都已经养成用j ... -
spring2.5 引入资源文件的方式
2011-10-09 16:55 1085以前项目中引入 数据库 连接相关的字符串 都是使用 &l ... -
Spring 配置中的 default-lazy-init="false"
2011-09-26 18:03 1859Spring 配置中的 default-lazy-init=& ... -
webwork+spring+ibatis注解培训文档
2011-08-15 17:26 1400今天整理了 spring 注解的使用,主要是结合公司 ... -
spring包详解 (转)
2010-11-18 17:25 888spring.jar是包含有完 ... -
远程调用 - spring+rmi
2010-09-26 22:29 1231Spring提供类用于集成各种远程访问技术。这种对远程访问的支 ... -
事务处理spring
2010-03-24 22:33 1011http://www.ibm.com/developerwor ... -
在并发情况下struts2与spring 组合需要注意的问题
2010-03-24 19:53 2100在并发情况下struts2与spring 组合需要注意的问题 ... -
Spring2.0框架的事务处理
2010-03-11 22:04 1002http://www.iteye.com/topic/328 ... -
使用import简化spring的配置文件
2010-01-28 18:13 1135对于spring配置文件的编 ... -
Spring 中的数据源 转载
2010-01-25 18:17 1218http://www.blogjava.net/masen ... -
Spring事务配置的五种方式(转)
2010-01-25 17:32 828转载自: http://www.blogjava.net ... -
spring 2.5 事务属性
2010-01-25 15:59 1625spring事务的属性 转载自http://zhangli-l ... -
spring 2.5 事务管理
2010-01-25 15:57 2035spring2.5的事物管理,分为两种方式,一是基于注解方式的 ... -
事务传播属性(转)
2010-01-25 15:53 1192事务的传播行为和隔离级别[transaction behavi ... -
spring aop execution pointcut 表达式
2010-01-25 13:02 2327Spring AOP 用户可能会经常使用 executio ...
相关推荐
在IT行业中,Spring框架是Java领域最常用的轻量级应用框架之一,而Hessian则是一种高效的RPC(远程过程调用)协议,它允许服务提供者和消费者之间进行二进制远程方法调用。本案例主要关注如何将Spring与Hessian进行...
总的来说,Spring整合Hessian访问远程服务是Java开发中的常见实践,它利用Spring的灵活性和Hessian的高效性,简化了服务的发布和调用流程,是构建分布式系统时的一个有效工具。通过学习和掌握这一技术,开发者可以更...
在Spring框架中集成Hessian是为了实现远程方法调用(Remote Method Invocation, RMI),这是一种轻量级的序列化协议,可以高效地传输Java对象。Hessian使得服务提供者和服务消费者之间能够通过网络进行快速的数据...
使用eclipse maven工程搭建hessian远程服务demo 分服务端的整合和客户端 建议阅读相关博客http://blog.csdn.net/heisemuyangquan/article/details/79460528
在Spring中,Hessian通常用来实现远程服务调用。通过AOP,我们可以对Hessian服务进行拦截,添加如日志、性能监控等额外功能。以下是一个基本的步骤: 1. **创建Hessian服务**:首先,我们需要定义一个服务接口和其...
总之,Spring集成Hessian插件并改用自动注入可以极大简化服务的管理和调用。通过合理的配置和注解,我们可以实现服务的自动发现和依赖注入,提升代码的灵活性和可维护性。同时,理解并熟练掌握这一技术对于提升开发...
struts2+ibatis+spring+Hessian 整合项目 web项目整合,服务端用hessian协议远程调用服务端的方法,hessian是用spring代理整合,struts2+ibatis+spring的整合项目,用作学习和开发基础平台构建很有用处,工程导入...
在Spring整合中,我们可以使用HessianExporter来暴露服务,HessianProxyFactoryBean来创建服务客户端。 3. **Maven**:Maven的pom.xml文件定义了项目依赖、构建过程和插件设置。在这个项目中,它会管理Spring、...
在这个实例中,我们学习了如何利用Spring的自动装配和Hessian的高效通讯能力,实现了一个简单的Web Service。这种方式适用于需要快速、轻量级交互的场景,特别适合于内部服务之间的通信,或者对性能有较高要求的应用...
在Spring框架中集成Hessian,我们需要进行以下步骤: 1. **创建服务接口和服务实现**: 首先,你需要定义一个服务接口,然后实现这个接口。例如,我们有一个`HelloHessianService`接口,包含一个`sayHello`方法。 `...
在将Hessian与Spring进行整合时,我们需要确保引入了正确的jar包。这些jar包通常包括以下几个核心组件: 1. **Hessian库**:这是实现Hessian RPC的基础,包含了序列化和反序列化的类以及远程调用的相关接口。主要的...
当我们将Hessian与Spring进行整合时,主要目标是利用Spring的依赖注入(Dependency Injection, DI)和组件管理能力来简化Hessian服务的创建和管理。以下是一些关键知识点: 1. **Spring核心模块**(spring-core-...
综上所述,"Hessian与Spring整合"的核心是利用Spring的管理能力,结合Hessian的高效远程调用特性,构建可扩展、易于管理和维护的分布式服务系统。通过这种方式,开发者可以专注于业务逻辑,而无需过于关注底层通信...
在IT行业中,Hessian和Spring的集成是服务端开发中常用的一种技术,它允许我们将Java对象作为远程服务进行调用,极大地提高了开发效率和系统的可扩展性。下面将详细讲解Hessian与Spring集成的关键知识点。 首先,...
Hessian则是一种轻量级的RPC(远程过程调用)协议,它能够高效地进行二进制序列化,使得远程服务调用变得更加便捷。 【描述】中提到的"里面有具体的实例程序",意味着这个压缩包可能包含了一个完整的示例项目,该...
要在Spring Web Flow项目中集成Hessian服务,我们需要以下步骤: 1. **配置Hessian服务**:在服务器端,我们需要创建一个实现了所需接口的业务服务类,并在Spring配置文件中声明它为Hessian服务,使用`<bean>`标签...
在Java开发中,Flex-Spring-Hessian框架常常被用于构建富客户端应用,它整合了Adobe Flex前端与Spring后端服务,利用Hessian协议进行二进制RPC通信,提高了数据传输效率。本篇文章将围绕这三个关键组件,深入探讨...
这个例子展示了如何在Spring MVC应用中集成Hessian,以及如何使用Maven管理依赖。实际开发中,还需要考虑错误处理、安全性、性能优化等方面的问题。通过这种方式,我们可以利用Hessian实现高效的远程服务调用,同时...