Hessian是一个简单的二进制的Web服务方案(其实我觉得它更多的是一种二进制对象传递方式),它只需要一个客户端接口和服务端程序就可以轻松实现程序的远程调用啦。
下面就以Hessian主页上的例子来show一下这种简单的RPC应用方案啦
1、在tomcat下创建一个应用test,在其下的WEB-INF/src目录下编写以下程序文件。
2、创建服务端程序文件example/BasicService.java,内容如下:
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、创建一个本地接口,example/Basic.java,内容如下:
package example;
public interface Basic {
public String hello(); //与服务端的hello方法对应
}
4、创建客户端测试程序,example/BasicClient.java,内容如下:
package example;
import com.caucho.hessian.client.HessianProxyFactory;
public class BasicClient {
public static void main(String []args)
throws Exception
{
String url = "http://127.0.0.1:8080/test/hello";
HessianProxyFactory factory = new HessianProxyFactory();
Basic basic = (Basic) factory.create(Basic.class, url);
System.out.println("Hello: " + basic.hello());
}
}
5、修改WEB-INF下的web.xml文件,填充以下内容:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<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>
<servlet-mapping>
<url-pattern>/hello</url-pattern>
<servlet-name>hello</servlet-name>
</servlet-mapping>
</web-app>
6、启动tomcat后,运行一下BasicClient类
看一看,是不是输出以下的内容啦,如果有恭喜你,已经成功创建你的第一个RPC Hessian应用了。
> Hello: Hello, world