`

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的整合项目,用作学习和开发基础平台构建很有用处,工程导入...

    spring、hessian通过tomcat的简单环境应用源代码

    Hessian则是一种轻量级的RPC(远程过程调用)协议,它能够高效地进行二进制序列化,使得远程服务调用变得更加便捷。 【描述】中提到的"里面有具体的实例程序",意味着这个压缩包可能包含了一个完整的示例项目,该...

    spring boot整合hessian的示例

    Spring Boot 整合 Hessian 的示例 在本文中,我们将通过实例代码来介绍如何将 Hessian 集成到 Spring Boot 应用程序中。Hessian 是一个基于 RPC(Remote Procedure Call,远程过程调用)的轻量级框架,它提供了一个...

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

    二、Hessian与Spring整合 Hessian与Spring的整合可以帮助我们更好地管理和控制远程服务。Spring作为一个强大的企业级应用框架,可以提供依赖注入、事务管理等特性。在整合过程中,我们可以在Spring配置文件中声明...

    hessian示例远程轻量级传输

    Hessian是一种基于二进制协议的轻量级远程方法调用(RMI)技术,由Caucho Technology开发。它的设计目标是提供一种高效、简洁的方式来传输...在实际项目中,根据需求,还可以结合Spring框架等进行更高级的集成和配置。

    利用hessian进行系统通信实例教程

    在Spring中集成Hessian,可以方便地实现服务的发布和消费,使得系统间的通信变得更加简单。 1. **配置Hessian服务端** - 首先,我们需要创建一个服务接口和服务实现类。 - 在Spring的配置文件中,使用`&lt;bean&gt;`...

    hessian php与java通讯demo源码

    Hessian是一种二进制协议,它允许在不同的编程语言之间进行高效的远程方法调用(RPC)。这个"PHP与Java通信Demo源码"是基于Hessian协议实现的一个示例,展示了如何在PHP和Java之间建立通信。现在,我们将深入探讨...

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

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

    hessian使用小例子

    在IT行业中,Hessian是一种轻量...通过这个简单的示例,我们可以看到如何在Java应用中集成和使用Hessian进行远程服务调用。在实际项目中,Hessian还可以与其他技术结合,如Spring框架,以实现更复杂的分布式系统架构。

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

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

    hessian实例 helloworld

    与Spring整合的方式相对复杂,需要将Hessian服务注册到Spring容器中,并通过Spring的DispatcherServlet进行请求调度。具体的配置和实现细节未在描述中给出,但通常涉及Spring的bean配置、服务接口的实现以及客户端的...

    hessian远程通信

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

    Flex整合spring

    在Flex应用程序中,我们通常利用远程对象(RemoteObject)或Web服务(如Hessian)来调用Spring管理的Bean中的方法和访问其属性,从而为用户提供动态、丰富的用户界面。 首先,让我们深入理解Flex与Spring的集成过程...

    Hessian-4.0.7(Jar包 + 源码)

    Hessian是一种轻量级的二进制Web服务协议,它由Caucho Technology开发,用于提高远程调用的效率和速度。Hessian 4.0.7是该协议的一个版本,提供了一个Java库,允许开发者在Java应用之间进行高效的数据交换。这个版本...

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

    远程调用服务框架

    1. **XFire**:XFire是早期的SOAP Web服务实现,Spring对其进行了封装,提供了一种基于XML的远程调用机制。XFire支持WS-I基本配置,使得服务能与多种平台和语言无缝交互。Spring通过Aegis绑定,将Java对象直接映射到...

Global site tag (gtag.js) - Google Analytics