hessian

公司不同pool之间提供service都是通过hessian来开放接口的,个人觉得hessian的使用非常简单。做个demo如下:

0.首先创建web工程,并加载hessian.jar。

1.创建service,即我们通过它来提供接口:

public interface BasicService { 
   
    public void setServiceName(String serverName); 
   
    public String getServiceName(); 
       
    public User createUser(); 
       
}

  

 

2.创建service实现:

public class BasicServiceImpl implements BasicService { 
   
    private String serviceName; 
       
    @Override 
    public void setServiceName(String serverName) { 
        this.serviceName = serverName; 
    } 
       
    @Override 
    public String getServiceName() { 
        return this.serviceName; 
    } 
       
    @Override 
    public User createUser() { 
        return new User("zhangsan", "123456"); 
    } 
}

  

3.创建需要通过hessian传递的对象(必须序列化):

public class User implements Serializable { 
   
    private static final long serialVersionUID = 5792818254468116836L; 
   
    private String username; 
       
    private String password; 
       
    public User(String username, String password) { 
        this.username = username; 
        this.password = password; 
    } 
   
    public String getUsername() { 
        return username; 
    } 
   
    public void setUsername(String username) { 
        this.username = username; 
    } 
   
    public String getPassword() { 
        return password; 
    } 
   
    public void setPassword(String password) { 
        this.password = password; 
    } 
}

  

4.配置web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 
  <display-name>HessianServer</display-name> 
     
  <servlet> 
    <servlet-name>basic</servlet-name> 
    <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class> 
    <init-param> 
        <param-name>service-class</param-name> 
        <param-value>com.loujinhe.service.impl.BasicServiceImpl</param-value> 
    </init-param> 
  </servlet> 
     
  <servlet-mapping> 
    <servlet-name>basic</servlet-name> 
    <url-pattern>/basic</url-pattern> 
  </servlet-mapping> 
     
</web-app>

  

 

5.创建测试用例:

import java.net.MalformedURLException; 
   
import org.junit.Before; 
import org.junit.Test; 
   
import com.caucho.hessian.client.HessianProxyFactory; 
import com.loujinhe.service.BasicService; 
   
   
public class BasicServiceTest { 
       
    private BasicService basicService; 
   
    @Before 
    public void init() throws MalformedURLException { 
        HessianProxyFactory factory = new HessianProxyFactory(); 
        String url = "http://localhost:8080/HessianServer/basic"; 
        basicService = (BasicService)factory.create(BasicService.class, url); 
    } 
       
    @Test 
    public void testBasic() { 
        basicService.setServiceName("BasicService"); 
        System.out.println(basicService.getServiceName()); 
           
        System.out.println(basicService.createUser().getUsername()); 
        System.out.println(basicService.createUser().getPassword()); 
    } 
}

  

6.启动服务器,运行测试用例,会得到如下结果:

 

BasicService

zhangsan

123456

 

原文地址 : http://www.open-open.com/lib/view/open1357604667793.html

posted @ 2016-03-17 13:52  小琪子  阅读(338)  评论(1)    收藏  举报