hessian首頁:http://hessian.caucho.com/
一個簡單的例子學習hessian服務:服務端為java,用戶端為c#。
<a href="http://heanet.dl.sourceforge.net/project/hessiancsharp/hessiancsharp/release%20version%201.2/hessiancsharp_binary_1_2.zip">hssiancharp.dll</a>
<a href="http://hessian.caucho.com/download/hessian-4.0.37.jar">hessian-4.0.37.jar</a>
打開eclipse建立一個dynamic web project,将hessian-4.0.37.jar放到lib下,大概如圖所示:

建立一個通信接口ihello:
ihello接口的一個實作:helloimpl.java
定義用來進行資料傳輸的類,兩個類都必須實作serializable接口:
hellobean.java
complexdata.java
web.xml内容:
定義一個與服務端對應的ihello接口:ihello.cs
定義與伺服器端一緻的的通信資料類:
hellobean.cs
complexdata.cs:
在主項目中添加hessiancsharp.dll引用。
測試代碼:
測試結果:
注意事項:
1、服務端和用戶端用于資料傳遞的對象的命名空間要一緻
ihello接口所在命名空間服務端和用戶端可以不一緻,但是ihello中用到的hellobean和complexdata在java服務端和c#用戶端中兩個hellobean類所在的命名空間要一緻。
2、類的字段要一緻
用于資料傳輸的類的字段名和字段類型要一緻(修飾類型可以不一緻)。
3、服務端的類要序列化
4、盡量使用基本的資料類型
從上面的測試可以看出,傳遞基本的類型沒有問題,傳遞普通的類對象沒有問題,傳遞arraylist的時候也沒有問題(c#用戶端使用array數組),但是傳遞hashmap字典的時候會有問題,c#這邊使用dictionary沒法對應一緻,可能是由于hash函數内部實作不一緻導緻的,具體原因不明。
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。
http://www.cnblogs.com/luxiaoxun/p/3969982.html