分散システム開発ツールパッケージ——Hessianに基づくHTTP RPC呼び出し技術
Hessian公式サイト:http://hessian.caucho.com/
hessianはバイナリウェブserviceプロトコルです.
Hessianの紹介
Hessianサービスの作成には4つのステップが含まれています.
ハロルドサービス
public interface BasicAPI {
public String hello();
}
サービスの実現public class BasicService extends HessianServlet implements BasicAPI {
private String _greeting = "Hello, world";
public void setGreeting(String greeting)
{
_greeting = greeting;
}
public String hello()
{
return _greeting;
}
}
クライアント実装String url = "http://hessian.caucho.com/test/test";
HessianProxyFactory factory = new HessianProxyFactory();
BasicAPI basic = (BasicAPI) factory.create(BasicAPI.class, url);
System.out.println("hello(): " + basic.hello());
展開標準web.xml
hello
com.caucho.hessian.server.HessianServlet
home-class
example.BasicService
home-api
example.Basic
/hello
hello
HessianプロローグHessian類は序列化と反前列化に利用できます.
序文化
Object obj = ...;
OutputStream os = new FileOutputStream("test.xml");
Hessian2Output out = new Hessian2Output(os);
out.writeObject(obj);
os.close();
反プロローグInputStream is = new FileInputStream("test.xml");
Hessian2Input in = new Hessian2Input(is);
Object obj = in.readObject(null);
is.close();
ベースタイプやStringタイプより複雑なjavaオブジェクトをプログレッシブにするには、必ずオブジェクトがjava.io.Serialzableインターフェースを実現していることを確認します.Hessianは大量のデータを処理します.
分散アプリケーションは大量のバイナリデータを送信する必要がある場合、InputStreamを使用するとより効率的になります.メソッドパラメータの中で最後のパラメータだけがInputStreamである可能性があります.データは呼び出し中に読みます.
以下はファイルをアップロードするAPIの例です.
package example;
public interface Upload {
public void upload(String filename, InputStream data);
}
リターン結果がInputStreamである場合、クライアントは、すべてのデータが読み取られ、input streamがオフになるまで、Input Stream.close()メソッドをfinallyブロックで呼び出す必要があります. API:
package example;
public interface Download {
public InputStream download(String filename, InputStream data);
}
:
InputStream is = fileProxy.download("test.xml");
try {
... // read data here
} finally {
is.close();
}
原文は以下の通りですhttp://www.yesdata.net/2018/03/11/hessian/