上一篇博客​​Hessian探究(一)Hessian入门示例​​我们初步简单的介绍了一下Hessian的使用入门示例,由于Spring现在使用的实在是太广泛了,接下来我们介绍一下Hessian和Spring一起开发的过程。

在上一篇博客中我们是通过如下代码来调用Hessian发布的服务:简单来说就是通过URL进行访问来使用Hessian发布的服务。


package com.tianjunwei.hessian.client;

import java.net.MalformedURLException;

import com.caucho.hessian.client.HessianProxyFactory;
import com.tianjunwei.hessian.server.HelloService;

public class HelloServiceMain {

public static void main(String [] args) throws MalformedURLException{
String url = "http://localhost:8080/hessian";
System.out.println(url);
HessianProxyFactory factory = new HessianProxyFactory();
HelloService helloService = (HelloService) factory.create(HelloService.class, url);
System.out.println(helloService.helloWorld("jimmy"));
}

}

在Spring下我们又是如何来使用Hessian的服务端来发布的服务的。

(1)Hessian给我们提供了在Spring下使用的HessianProxyFactoryBean,其实就是一个代理工厂,生成代理类。在spring的ApplicationContext.xml中进行如下配置,其实就是两个信息serviceUrl为Hessian暴露服务的连接,serviceInterface为暴露服务的接口。


<!-- 客户端Hessian代理工厂Bean -->  
<bean id="clientSpring" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<!-- 服务端请求地址 -->
<property name="serviceUrl">
<span style="white-space:pre"> </span><value>http://localhost:8080/hessian</value>
</property>
<!-- 接口定义 -->
<property name="serviceInterface">
<span style="white-space:pre"> </span><value>com.tianjunwei.hessian.server.HelloService</value>
</property>
</bean>

(2)经过第一步配置之后,接下来我们就可以在Spring中像使用普通的Bean一样来进行远程调用了,示例代码如下:


package com.tianjunwei.hessian.client;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.tianjunwei.hessian.server.HelloService;

public class SpringClient {

public static void main(String[] args) {
ApplicationContext contex = new ClassPathXmlApplicationContext(
"applicationContext.xml");
// 获得客户端的Hessian代理工厂bean
HelloService helloService = (HelloService) contex.getBean("clientSpring");
System.out.println(helloService.helloWorld("world"));
}
}

运行结果:

hello,world