Hessian使用入門
3490 ワード
本文は主にHessianの入門知識を紹介し、Hessianサービス側の構築とクライアントの呼び出しを含む.
1サーバ構築
1.1一般Webプロジェクトの作成
このようなWebエンジニアリングは、Mavenの下のエンジニアリングであってもよいし、Mavenを用いずに構築されたエンジニアリングであってもよい.Mavenエンジニアリングであれば、次の依存関係が使用されます.
hessionのバージョンはプロジェクトの状況に応じて調整できます.
WebエンジニアリングがMavenで構築されなければ、http://mvnrepository.com/artifact/com.caucho/hessian適切なバージョンのhessionパッケージをダウンロードし、適切なパスに置けばいいです.
1.2新規インタフェース
Hessianの対外的なサービスは通常Interfaceとして定義される.例は次のとおりです.
1.3実装インタフェース
サーバ側が対外的にサービスを提供するには、上記のインタフェースを実現する必要があります.
1.4 Web.xmlの変更
HessianはHttpServiceletを通じて対外的にサービスを提供し、Hessianが対外的にサービスを提供するにはWeb.xmlファイルを構成する必要があります.構成項目は以下のコードを参照してください.
1.5イニシエータ
2クライアントコール
2.1クライアントクラスの作成
私のクライアントプログラムは同じWebエンジニアリングの下に直接置かれているので、クライアントプログラムを直接作成します.
通常、クライアント・プログラムの作成には、サーバが提供するクライアントjarに依存する必要があります.
2.2実行呼び出し
3よくある質問
3.1 jdkバージョンの問題
Webエンジニアリングでは1.4バージョンのjdkを使用し、hessianのjarパッケージのみを参照すると、クライアント呼び出し時にクラス「net.sf.retrotranslator.runtime.java.lang._Integer」が見つからないなどのエラーが発生します.解決策は、retrotranslator-runtime-1.2.9.jarに依存します.
retrotranslatorのリファレンスリンクについて:http://huajiang.iteye.com/blog/501086
1サーバ構築
1.1一般Webプロジェクトの作成
このようなWebエンジニアリングは、Mavenの下のエンジニアリングであってもよいし、Mavenを用いずに構築されたエンジニアリングであってもよい.Mavenエンジニアリングであれば、次の依存関係が使用されます.
<dependency>
<groupId>com.caucho</groupId>
<artifactId>hessian</artifactId>
<version>3.1.5</version>
</dependency>
hessionのバージョンはプロジェクトの状況に応じて調整できます.
WebエンジニアリングがMavenで構築されなければ、http://mvnrepository.com/artifact/com.caucho/hessian適切なバージョンのhessionパッケージをダウンロードし、適切なパスに置けばいいです.
1.2新規インタフェース
Hessianの対外的なサービスは通常Interfaceとして定義される.例は次のとおりです.
package service;
/**
* :Hessian
*/
public interface Base {
public String hello(String value);
}
1.3実装インタフェース
サーバ側が対外的にサービスを提供するには、上記のインタフェースを実現する必要があります.
package service;
public class Hello implements Base {
public String hello(String user) {
return "hello " + user+" !";
}
}
1.4 Web.xmlの変更
HessianはHttpServiceletを通じて対外的にサービスを提供し、Hessianが対外的にサービスを提供するにはWeb.xmlファイルを構成する必要があります.構成項目は以下のコードを参照してください.
<servlet>
<servlet-name>base</servlet-name> <!-- servlet-class , com.caucho.hessian.server.HessianServlet-->
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<init-param> <!-- , -->
<param-name>home-class</param-name>
<param-value>service.Hello</param-value>
</init-param>
<init-param> <!-- , -->
<param-name>home-api</param-name>
<param-value>service.Base</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>base</servlet-name>
<url-pattern>/base</url-pattern>
</servlet-mapping>
1.5イニシエータ
2クライアントコール
2.1クライアントクラスの作成
私のクライアントプログラムは同じWebエンジニアリングの下に直接置かれているので、クライアントプログラムを直接作成します.
package service;
import com.caucho.hessian.client.HessianProxyFactory;
public class Test {
/**
* @param args
*/
public static void main(String[] args)throws Exception {
//
String url = "http://127.0.0.1:8080/test/base";
//
HessianProxyFactory factory = new HessianProxyFactory(); //
Base base = (Base)factory.create(Base.class,url);
// ,
System.out.println(base.hello("world"));
}
}
通常、クライアント・プログラムの作成には、サーバが提供するクライアントjarに依存する必要があります.
2.2実行呼び出し
3よくある質問
3.1 jdkバージョンの問題
Webエンジニアリングでは1.4バージョンのjdkを使用し、hessianのjarパッケージのみを参照すると、クライアント呼び出し時にクラス「net.sf.retrotranslator.runtime.java.lang._Integer」が見つからないなどのエラーが発生します.解決策は、retrotranslator-runtime-1.2.9.jarに依存します.
retrotranslatorのリファレンスリンクについて:http://huajiang.iteye.com/blog/501086