沒想到漏記了這個技術,Hessian是Remoting技術之一,有別web services是binary,故速度較快,源自Spring,底下有個小小Sample誌之:
和其他技術一樣,Interface與Implement分離而作,是故先定義Interface:
public interface Hello {
public String hello(String name);
}
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";
}
}
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>
<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>
<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
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"));
}
}
執行批次如下:
全站熱搜