`

Hessian入门(与Spring集成)

阅读更多

Hessian入门(Spring集成)

                                                                                                                      By:wtang

说明 

1.    讲述如何配置Hessian的服务器端(Spring集成).

2.    讲述客户端如何调用

   使用HessianProxyFactory  Hessian代理工厂直接调用

   使用HessianProxyFactoryBean Hessian代理工厂Bean来完成接口调用.

 

1.    讲述如何配置Hessian的服务器端(Spring集成).

 

 

 

 

 

接口定义类: com.wtang.isay. Isay:

 

 

[java] view plaincopy
 
  1. package com.wtang.isay;  
  2.   
  3. public interface Isay {  
  4.     public String sayHello(String arg1,String arg2);  
  5. }  

 

 

接口具体实现类: com.wtang.isay. IsayImpl

 

[java] view plaincopy
 
  1. package com.wtang.isay;  
  2.   
  3. public class IsayImpl implements Isay {  
  4.   
  5.     public String sayHello(String arg1, String arg2) {  
  6.         return "Hello:" + arg1 + arg2;  
  7.     }  
  8. }  

 

配置Web.xml:

 

[java] view plaincopy
 
  1. <servlet>  
  2.     <servlet-name>remote</servlet-name>  
  3.     <!-- 使用Spring的代理Servlet -->  
  4.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  5.     <init-param>  
  6.         <param-name>namespace</param-name>  
  7.         <param-value>classes/remote-servlet</param-value>  
  8.     </init-param>  
  9.     <load-on-startup>1</load-on-startup>  
  10. </servlet>  
  11.   
  12. <servlet-mapping>  
  13.     <servlet-name>remote</servlet-name>  
  14.     <url-pattern>/remote/*</url-pattern>  
  15. </servlet-mapping>  

 

配置remote-servlet.xml[该文件位于src目录下,即编译后存在与classes下]:

 

[java] view plaincopy
 
  1. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
  2. <beans>  
  3.     <!-- 接口的具体实现类 -->  
  4.     <bean id="impl" class="com.wtang.isay.IsayImpl" />  
  5.     <!-- 使用Spring的HessianServie做代理 -->  
  6.     <bean name="/helloSpring"  
  7.     class="org.springframework.remoting.caucho.HessianServiceExporter">  
  8.         <!-- service引用具体的实现实体Bean-->  
  9.         <property name="service" ref="impl" />  
  10.         <property name="serviceInterface" value="com.wtang.isay.Isay" />  
  11.     </bean>  
  12.       
  13.     <!-- 可以配置多个HessianServiceExporter代理Bean -->  
  14. </beans>  

 

注:

      这个文件为什么叫remote-servlet.xml呢?

因为我们在web.xml中有配置:<servlet-name>remote</servlet-name>

所以remote-servlet.xml的文件名必须以

<servlet-name>中配置的servlet-name作为文件名的开头,

且文件名的格式必须是[servlet-name]-servlet.xml格式,否则检测不到。

    :

<param-value>classes/remote-servlet</param-value>

所以文件名为remote-servlet.xml

 

 

2.    讲述客户端如何调用

        ① 使用HessianProxyFactory  Hessian代理工厂直接调用

 即:

       

[java] view plaincopy
 
  1. package com.wtang.test;  
  2.   
  3. import java.net.MalformedURLException;  
  4. import com.caucho.hessian.client.HessianProxyFactory;  
  5. import com.wtang.isay.Isay;  
  6.   
  7. public class NormalClient {  
  8.     public static void main(String[] args) throws MalformedURLException {  
  9.         //Spring Hessian代理Servelet  
  10.         String url = "http://localhost:8080/HessianSpring/remote/helloSpring";  
  11.         HessianProxyFactory factory = new HessianProxyFactory();  
  12.         Isay api = (Isay) factory.create(Isay.class, url);  
  13.   
  14.         System.out.println(api.sayHello("chen""weitang"));  
  15.     }  
  16. }  

 

 

输出Hello:chenweitang

 

2.    讲述客户端如何调用

        ② 使用HessianProxyFactoryBean Hessian代理工厂Bean来完成接口调用.

配置客户端 remote-client.xml:

 

[java] view plaincopy
 
  1. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
  2. <beans>  
  3.     <!-- 客户端Hessian代理工厂Bean -->  
  4.     <bean id="clientSpring" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">  
  5.         <!-- 请求代理Servlet路径 -->          
  6.         <property name="serviceUrl">  
  7. <value>http://localhost:8080/HessianSpring/remote/helloSpring</value>  
  8.         </property>  
  9.         <!-- 接口定义 -->  
  10.         <property name="serviceInterface">  
  11.             <value>com.wtang.isay.Isay</value>  
  12.         </property>  
  13.     </bean>  
  14. </beans>  

 

 

调用:

 

[java] view plaincopy
 
  1. package com.wtang.test;  
  2.   
  3. import org.springframework.context.ApplicationContext;  
  4. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  5. import com.wtang.isay.Isay;  
  6.   
  7. public class SpringClient {  
  8.     public static void main(String[] args) {  
  9.         ApplicationContext contex = new ClassPathXmlApplicationContext(  
  10.                 "remote-client.xml");  
  11.   
  12.         // 获得客户端的Hessian代理工厂bean  
  13.         Isay i = (Isay) contex.getBean("clientSpring");  
  14.         System.out.println(i.sayHello("chen""weitang"));  
  15.     }  
  16. }  

 

 

输出Hello:chenweitang

分享到:
评论

相关推荐

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

    一、Hessian入门实例 Hessian的入门实例主要展示了如何创建一个简单的服务提供者和消费者。首先,我们需要定义一个服务接口,例如`HelloService`,包含一个或多个方法,这些方法将被远程调用。然后,我们需要实现这...

    hession入门及注入spring

    【Hession入门及注入Spring】 Hessian是一种轻量级的RPC(Remote Procedure Call)协议,它基于HTTP协议,主要用于提供二进制序列化的远程方法调用。Hessian使得Java对象能够在网络间高效地进行传输,简化了分布式...

    spring ioc入门

    5. **框架集成**:Spring 与 Struts、Hibernate、Hessian、Quartz 等多种框架无缝集成,降低了使用这些框架的难度。 6. **API 使用难度降低**:Spring 对如 JDBC、JavaMail、远程调用等复杂 API 提供了简洁的封装,...

    [Pro.Spring.3(2012)].Clarence.Ho.文字版

    读者将了解到不同的远程调用协议(如RMI、Hessian、Burlap等)与Spring Remoting的集成方式,以及如何构建分布式应用系统。 ### 第17章:使用Spring的Web应用程序 本章专注于Spring MVC框架,讲解了如何使用Spring...

    spring-framework-5.0 中文文档PDF

    Spring Framework 5.0中文文档PDF可能还包括了对CORS支持、与其他Web框架的集成、WebSocket支持等Web技术的介绍,以及如何使用Spring框架提供远程服务和Web服务。 关于远程服务和Web服务的章节,文档可能讲述了使用...

    Spring In Action 2005

    讲解如何利用Spring框架实现远程服务调用,包括RMI、Hessian、 Burlap等多种远程调用技术的集成。 **第7章:访问企业服务** 介绍如何使用Spring框架与企业级服务进行交互,如JMS、JNDI、JTA等,以及如何处理复杂的...

    SpringCloud入门 nacos 、sentinel、rocketMQ、dubbo、

    这个压缩包文件可能包含了一个Spring Cloud的入门示例项目,其中可能集成了Nacos、Sentinel、RocketMQ和Dubbo。通过这个项目,你可以学习如何在实际应用中配置和使用这些组件,理解它们之间的交互和作用,从而更好地...

    hession之经典入门例子

    Spring是一个强大的企业级应用开发框架,它提供了对Hession的支持,可以方便地集成到Spring项目中。 在Spring中使用Hessian,我们需要以下几个步骤: 1. **创建服务接口**:定义你需要暴露的服务接口,例如: ```...

    springJAR包

    7. **Integration**:Spring提供了多种与其他技术或框架的集成,例如与消息中间件(如JMS)、远程调用(RMI、Hessian、 Burlap)、EJB等。 在文件名称`spring-framework-2.0.2-with-dependencies`中,我们可以推断...

    Springcloud Alibaba-2020微服务详解

    《Springcloud Alibaba-2020微服务详解》是一份深度剖析Springcloud Alibaba微服务架构的教程,旨在帮助开发者从入门到精通掌握这一强大的微服务框架。本教程涵盖了Springcloud Alibaba中的各个关键组件,旨在让读者...

    dubbo入门实例

    7. **Spring集成** Dubbo可以无缝集成Spring,通过Spring的XML配置或注解方式,可以轻松地实现服务的发布和引用。这使得开发者能更专注于业务逻辑,而不是底层细节。 8. **监控与日志** Dubbo提供了一套监控体系...

    dubbo分布式系统入门教学

    - **Spring Boot集成**:利用Spring Boot的便利性,简化Dubbo的配置和管理。 - **异步调用与回调**:通过异步模式,提高服务处理能力,实现非阻塞调用。 - **服务治理优化**:定期进行服务治理策略调整,如根据...

    Dubbo官网入门Demo.zip

    - Dubbo可以与Spring、Spring Boot等Web框架集成,通过RESTful API或SOAP Web服务提供远程服务。 - 在Web应用中,可以使用`@Controller`和`@RequestMapping`注解创建REST接口,然后在后台调用Dubbo服务。 7. **...

    Dubbo入门之HelloWorld

    同时,Dubbo 2.x版本引入了Spring Boot的支持,简化了配置和集成流程,使其更易于使用。 总之,"Dubbo入门之HelloWorld"是一个很好的起点,通过实践这个简单的示例,我们可以快速理解Dubbo的工作原理,并为进一步...

    dubbo demo

    6. **协议与序列化**:Dubbo支持多种通信协议(如Dubbo、RMI、HTTP等)和序列化方式(如Hessian、Fastjson等)。你需要知道如何选择和配置这些选项。 7. **服务调用与负载均衡**:Dubbo提供了多种负载均衡策略(如...

    dubbo入门教程

    在实践中,你还可以探索Dubbo与其他微服务框架(如Spring Cloud)的集成,以及如何在大型项目中实施服务治理的最佳实践。总之,掌握Dubbo意味着你具备了构建高性能、高可用分布式系统的能力,这对于任何Java开发者在...

    Dubbo入门到精通架构高级课程(视频+课件+源码)共10套.rar

    10. **未来趋势**:讨论Dubbo与其他微服务框架(如Spring Cloud)的对比,以及Dubbo 3.0的新特性和发展方向。 通过这门【Dubbo入门到精通架构高级课程】,学员将不仅能够掌握Dubbo的基本使用,还能了解到如何在复杂...

    分布式服务之Dubbo基础架构搭建Demo

    5. **Spring整合**:为了简化配置和管理,我们可以利用Spring的依赖注入特性,将Dubbo服务的配置集成到Spring容器中。这样,服务提供者和服务消费者可以通过Spring的XML配置或注解方式来声明和引用服务。 搭建步骤...

    Dubbo开源现状与未来规划.pptx

    - 三方库如Spring、ZK、Hessian等的升级,以满足社区的需求,如REST支持、Spring Boot集成、Hessian对Java 8的支持等。 - Dubbo的核心模块化,旨在提高代码可维护性和扩展性。 - 探索新的运维工具(Ops)如Dubbo ...

Global site tag (gtag.js) - Google Analytics