hessian
是採用二進位製流進行通訊的,效能應該會好一些,不過既然通過二進位製流傳遞,是不是對複雜物件的傳遞有問題呢,畢竟傳遞過程中沒有象
soap
這樣保留了物件的結構的。這個問題有待以後考證。
和ice,webservice
一樣,既然作為服務類那麼必須有文件公布它的介面形式,客戶端使用者在通過這個文件來生成**類。
ice是通過
.ice
檔案,webservice
是通過wsdl
,但是hessian
沒有這個型別的文件,
hessian
的**類是直接通過
factrory
去生成的。所以在做
hessian
客戶端**之前,需要拿到介面檔案
inte***ce
。下面我們通過乙個完整的例子看看
hessian
伺服器端**和客戶端**如何實現。
伺服器端**和配置:
2. 新建伺服器端工程(web工程:hessian),新增介面宣告檔案new->inte***ce。**如下:
1 package hessian;
2
3 public inte***ce printer
3. 新建伺服器類實現**,new->class,**如下
01 package hessian;
02
03 public class printerservice implements printer
09
10 }
4. 修改伺服器端web.xml檔案如下
<?
xml
version="1.0"
encoding="utf-8"
?>
<
>
<
servlet
>
<
servlet-name
>aaa
servlet-name
>
<
servlet-class
>com.caucho.hessian.server.hessianservlet
servlet-class
>
<
init-param
>
<
param-name
>home-class
param-name
>
<
param-value
>hessian.printerservice
param-value
>
init-param
>
<
init-param
>
<
param-name
>home-api
param-name
>
<
param-value
>hessian.printer
param-value
>
init-param
>
servlet
>
<
>
<
servlet-name
>aaa
servlet-name
>
<
url-pattern
>/aaa
url-pattern
>
>
>
上述**實現如下功能:
* 指定介面的url
* 指定api使用的inteface檔案
* 指定伺服器類實現的**
6. 將hessian jar包拷貝到lib目錄下。
客戶端**:
1. 新建客戶端工程,新增測試類,**如下
01 package hessian;
02
03 import com.caucho.hessian.client.hessianproxyfactory;
04
05 public class testclient
17
18 }
執行客戶端**:可以看見hessian helloworld。
使用comview去捕捉實際傳遞的內容,發現根本看不懂傳遞的內容,因為是以二進位製流進行傳遞的。
Hessian介面學習筆記
和ice,webservice一樣,既然作為服務類那麼必須有文件公布它的介面形式,客戶端使用者在通過這個文件來生成 類。ice是通過.ice檔案,webservice是通過wsdl,但是hessian沒有這個型別的文件,hessian的 類是直接通過factrory去生成的。所以在做hessian客...
機器學習筆記 Hessian矩陣
看牛頓法的時候,遇到的這個問題 原問題是要用牛頓法求對數似然函式 l 的最大值,也就是似然函式導數的零點,即迭代過程為 l l 如果 為向量,就會想,函式對向量求導怎麼求?所以查了一下 結果是向量 事實上這就是所謂的gradient,即對於一般標量函式 f x 其中向量為 x x1,xn 導數為 f...
hessian學習總結 一
簡單的hessian使用 1.先建立需要呼叫的介面和實現類 如下 介面 public inte ce basicapi 實現類public class basicservice implements basicapi public void set greeting string greeting ...