`

spring整合hessian进行远程通讯

阅读更多

 由于日志没有图片功能,可以访问内部论坛:
 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,下面通过一个实例来展示hessianspring整合使用。

 

一.首先介绍一下此实例的环境

 

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访问远程服务

    NULL 博文链接:https://elim.iteye.com/blog/1869488

    Spring配置hessian远程服务

    使用eclipse maven工程搭建hessian远程服务demo 分服务端的整合和客户端 建议阅读相关博客http://blog.csdn.net/heisemuyangquan/article/details/79460528

    struts2+ibatis+spring+Hessian 整合项目

    struts2+ibatis+spring+Hessian 整合项目 web项目整合,服务端用hessian协议远程调用服务端的方法,hessian是用spring代理整合,struts2+ibatis+spring的整合项目,用作学习和开发基础平台构建很有用处,工程导入...

    轻量级远程服务调用Hessian的入门实例和与Spring整合的实例.zip

    纯Hessian的入门例子教程,还有Hessian和Spring整合的例子教程。 代码上传之前都运行通过的

    Spring 实现远程访问详解——rmi

    Spring为各种远程访问技术提供集成工具类。Spring远程访问通过使用普通POJOs,能更容易的开发远程访问服务。目前,Spring远程访问的主要技术如下: 1. 远程调用RMI(Remote Method Invocation): 通过使用 ...

    hessian-demo和hessian与spring整合demo.doc

    Hessian是一个轻量级的remoting on http工具,使用简单的方法提供了RMI(Remote Method Invocation,远程方法调用)的功能。采用的是二进制RPC(Remote Procedure Call Protocol,远程过程调用协议)协议,因为采用...

    hessian远程通信

    本示例是hessian与spring整合的,客户端与服务端相互调用的最完整例子。

    spring jar 包详解

    (9) spring-remoting.jar 这个jar文件包含支持EJB、JMS、远程调用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。 (10) spring-support.jar 这个jar文件包含支持缓存Cache(ehcache)、JCA、...

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

    spring jar 包详解spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了 spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到spring-mock.jar来进行辅助测试,正式应用系统...

    最新最全的spring开发包

     这个jar文件包含支持EJB、JMS、远程调用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。 (10) spring-support.jar  这个jar文件包含支持缓存Cache(ehcache)、JCA、JMX、邮件服务(Java ...

    Spring 2.0 开发参考手册

    17. 使用Spring进行远程访问与Web服务 17.1. 简介 17.2. 使用RMI暴露服务 17.2.1. 使用 RmiServiceExporter 暴露服务 17.2.2. 在客户端链接服务 17.3. 使用Hessian或者Burlap通过HTTP远程调用服务 17.3.1. 为...

    开源框架 Spring Gossip

    远程(Remoting) Spring 提供了一致的使用方式,即使所采用的远程服务技术不尽相同,在 Spring 中运用它们的方式却是一致的。 RMI Hessian、 Burlap Http Invoker &lt;br&gt;邮件 对于邮件发送...

    Spring-Reference_zh_CN(Spring中文参考手册)

    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来...

    spring in action英文版

     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 ...

    Spring中文帮助文档

    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...

    spring chm文档

    17. 使用Spring进行远程访问与Web服务 17.1. 简介 17.2. 使用RMI暴露服务 17.2.1. 使用 RmiServiceExporter 暴露服务 17.2.2. 在客户端链接服务 17.3. 使用Hessian或者Burlap通过HTTP远程调用服务 17.3.1. 为...

    Spring API

    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...

    Spring in Action(第2版)中文版

    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...

Global site tag (gtag.js) - Google Analytics