Java遠程方法調用:Hessian

jopen 11年前發布 | 63K 次閱讀 Hessian Java開發

    公司不同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://blog.csdn.net/loujinhe/article/details/8479238

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!