簡單的Hessian接口開發實例

  須要的jar包 hessian-4.0.7.jarjava

#客戶端web

  1. 接口app

package com.test;

public interface Printer {
	
	public String print(String a);
	
	public String say();

}

2.實現該接口測試

package com.test;

public class PrinterService implements Printer {

	public String print(String a) {
		return a;
	}

	public String say() {
		return "nihao";
	}

}

3.web.xml的配置url

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
    <servlet-name>aaa</servlet-name>
    <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
    <init-param>
      <javaee:param-name>service-class</javaee:param-name>
      <javaee:param-value>com.test.PrinterService</javaee:param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>aaa</servlet-name>
    <url-pattern>/aaa</url-pattern>
  </servlet-mapping>
</web-app>


#服務端.spa

 1.測試類.net

package com.test;

import java.net.MalformedURLException;

import com.caucho.hessian.client.HessianProxyFactory;

public class TestHessian {

	/**
	 * @param args
	 * @throws MalformedURLException 
	 */
	public static void main(String[] args) throws MalformedURLException {
		// TODO Auto-generated method stub
		String url = "http://localhost:7001/H/aaa";
		//建立factory實例
		HessianProxyFactory factory = new HessianProxyFactory();
		//客戶端需實現Basic接口
		//利用java反射機制建立Printer類的實例,從而能夠獲取該實例的方法
		Printer printr = (Printer)factory.create(Printer.class, url);
		System.out.println("Hessian: " + printr.print("123")+printr.say()); 
	} 

}

輸出結果:code

Hessian: 123nihao


關於Hessian接口:orm

 Hessian 是一個基於 binary-RPC 實現的遠程通信 library。使用二進制傳輸數據。Hessian一般經過Web應用來提供服務,經過接口暴露。Servlet和Spring的DispatcherServlet均可以把請求轉發給Hessian服務server

關於hessian的7個問題:

一、是基於什麼協議實現的?

    基於Binary-RPC協議實現。

二、怎麼發起請求?

    需經過Hessian自己提供的API來發起請求。

三、怎麼 將請求轉化爲符合協議的格式的?

    Hessian經過其自定義的串行化機制將請求信息進行序列化,產生二進制流。

四、使用什麼 傳輸協議傳輸?

    Hessian基於Http協議進行傳輸。

五、響應端基於什麼機制來接收請求?

    響應端根據Hessian提供的API來接收請求。

六、怎麼將流還原爲傳輸格式的?

    Hessian根據其私有的串行化機制來將請求信息進行反序列化,傳遞給使用者時已經是相應的請求信息對象了。

七、處理完畢後怎麼迴應?

   處理完畢後直接返回,hessian將結果對象進行序列化,傳輸至調用端。

相關文章
相關標籤/搜索