Hessian是一個(gè)簡(jiǎn)單的二進(jìn)制的Web服務(wù)方案(其實(shí)我覺得它更多的是一種二進(jìn)制對(duì)象傳遞方式),它只需要一個(gè)客戶端接口和服務(wù)端程序就可以輕松實(shí)現(xiàn)程序的遠(yuǎn)程調(diào)用啦。
下面就以Hessian主頁(yè)上的例子來(lái)show一下這種簡(jiǎn)單的RPC應(yīng)用方案啦
1、在tomcat下創(chuàng)建一個(gè)應(yīng)用test,在其下的WEB-INF/src目錄下編寫以下程序文件。
2、創(chuàng)建服務(wù)端程序文件example/BasicService.java,內(nèi)容如下:
package example;
public class BasicService implements Basic {
private String _greeting = "Hello, world";
public void setGreeting(String greeting)
{
_greeting = greeting;
}
public String hello()
{
return _greeting;
}
}
3、創(chuàng)建一個(gè)本地接口,example/Basic.java,內(nèi)容如下:
package example;
public interface Basic {
public String hello(); //與服務(wù)端的hello方法對(duì)應(yīng)
}
4、創(chuàng)建客戶端測(cè)試程序,example/BasicClient.java,內(nèi)容如下:
package example;
import com.caucho.hessian.client.HessianProxyFactory;
public class BasicClient { HessianProxyFactory factory = new HessianProxyFactory(); System.out.println("Hello: " + basic.hello()); 5、修改WEB-INF下的web.xml文件,填充以下內(nèi)容: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app <servlet-mapping> 6、啟動(dòng)tomcat后,運(yùn)行一下BasicClient類 看一看,是不是輸出以下的內(nèi)容啦,如果有恭喜你,已經(jīng)成功創(chuàng)建你的第一個(gè)RPC Hessian應(yīng)用了。
public static void main(String []args)
throws Exception
{
String url = "
Basic basic = (Basic) factory.create(Basic.class, url);
}
}
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
" <web-app>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<init-param>
<param-name>home-class</param-name>
<param-value>example.BasicService</param-value>
</init-param>
<init-param>
<param-name>home-api</param-name>
<param-value>example.Basic</param-value>
</init-param>
</servlet>
<url-pattern>/hello</url-pattern>
<servlet-name>hello</servlet-name>
</servlet-mapping>
</web-app>
> Hello: Hello, world