• hessian学习(与Spring集成)


    Hessian入门(与Spring集成)

                                                                                                                    

    说明 :

    1. 讲述如何配置Hessian的服务器端(与Spring集成).
    2. 讲述客户端如何调用

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

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

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

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

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

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

    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:

    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下]:

    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。

    1. 讲述客户端如何调用

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

     即:

           

    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

    1. 讲述客户端如何调用

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

    配置客户端 remote-client.xml:

    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>  

    调用:

    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

    转自:http://blog.csdn.net/chenweitang123/article/details/6334097

  • 相关阅读:
    兑奖
    杨辉三角
    偶数求和
    进制转化
    填词
    等值数目
    Spring框架的七个模块
    数据库中的第1、2、3范式 (昨天没睡好,因为那个蚊子~~)
    关于eclipse 不编译或者找不到*.class的问题
    servlet生命周期的理解
  • 原文地址:https://www.cnblogs.com/1987721594zy/p/8610221.html
Copyright © 2020-2023  润新知