沒想到漏記了這個技術,Hessian是Remoting技術之一,有別web services是binary,故速度較快,源自Spring,底下有個小小Sample誌之:
和其他技術一樣,Interface與Implement分離而作,是故先定義Interface:
public interface Hello {
    public String hello(String name);
}
下面是放在server上的Implement
public class HelloImpl implements Hello {
    public String hello(String name)  {
  System.out.println("Hello! " + name);
        return "hello " + name + " welcome to Hessian";
    }
}
在web.xml的設定如下:
<web-app>
 <servlet>
  <servlet-name>hessianService</servlet-name>
  <servlet-class>
   com.caucho.hessian.server.HessianServlet
  </servlet-class>
  <load-on-startup>1</load-on-startup>
  <init-param>
   <param-name>service-class</param-name>
   <param-value>HelloImpl</param-value>
        </init-param>
 </servlet>
 <servlet-mapping>
  <servlet-name>hessianService</servlet-name>
  <url-pattern>/hessianService</url-pattern>
 </servlet-mapping>
</web-app>
在WEB-INF/lib只需放一個jar:hessian-3.1.2.jar (最新已到3.1.5了)
Client 端程式也只需上述的Jar,呼叫如下:
import com.caucho.hessian.client.*;
public class HessianClient {
    public static void main(String []args) throws Exception   {
           String url = "http://localhost:8888/reg/hessianService"; // 假定web context為reg
           HessianProxyFactory factory = new HessianProxyFactory();
           Hello d = (Hello) factory.create(Hello.class, url);
           System.out.println("Hessian: " + d.hello("yeeku"));
    }
}
執行批次如下:
java -classpath .;Hello.class;hessian-3.1.2.jar HessianClient.class
 
 
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Jemmy 的頭像
    Jemmy

    Jemmy Walker

    Jemmy 發表在 痞客邦 留言(0) 人氣()