Hessian使用入門


本文は主にHessianの入門知識を紹介し、Hessianサービス側の構築とクライアントの呼び出しを含む.
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