首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

hessian使用

2012-11-09 
hessian应用目前hessian算一个比较热的应用。利用它可以很方便的实现远程服务。目前,开发的系统(项目)多处利

hessian应用

目前hessian算一个比较热的应用。利用它可以很方便的实现远程服务。目前,开发的系统(项目)多处利用了hessian。一个简单的场景是,应用A通过hessian调用应用B的服务,然后B的服务请求公司对外统一的gateway进行请求转发,把请求分发到外部合作公司。hessian还可以利用多线程实现数据同步(或者说是数据推送)。下面,给出一个简单例子,说明hessian的用法。具体hessian适合用在哪些场景,则看看之前发表的 远程服务 相关的文章。

?

首先,简简单单的利用sevlet就OK。但需要准备好hessian.*.*.jar,spring.jar , common.logging和jdk等

?

(1)编写服务端

声明接口和方法:

?

public interface RemoteHessianService { String sayHello(String name);}
?

?

实现接口:

?

public class RemoteHessianServiceImpl implements RemoteHessianService {public String sayHello(String name) {        return "hello " + name}}
?

配置web.xml

?

<?xml version="1.0" encoding="GB2312"?><!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> <!--  hessian 服务 --><servlet><servlet-name>remote</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><!--  hessian 服务 --><servlet-mapping><servlet-name>remote</servlet-name><url-pattern>/remote/*</url-pattern></servlet-mapping></web-app> 

?在WEB-INFO下面新增remote-servlet.xml,配置其内容如下:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans><bean id="remoteHessian"/></property><property name="serviceInterface"><value>com.myCompany.service.interfaces.RemoteHessianService</value></property></bean></beans>

?上面的配置主要是完成了servlet的名称与URL的映射配置,以及利用spring配置初始化bean而已。

?

?

到此,启动利用JBOSS启动web应用,服务端已经到此OK。

?

?

(2)编写客户端:

?

纯粹的利用JDK,而不依赖spring的客户端代码如下:

public class Say {    /**     * @param args     */    public static void main(String[] args) {  com.caucho.hessian.client.HessianProxyFactory proxyFactory = new         com.caucho.hessian.client.HessianProxyFactory();                 RemoteHessianService service = null;         try {         service = (RemoteHessianService) proxyFactory.create(RemoteHessianService.class,         "http://localhost:jobss_port/remote/remoteHessianService");         } catch (MalformedURLException e) {               e.printStackTrace();//no recommended         }                 if (service != null) {                     System.out.println(service.sayHello("hessian"));         }}

?编译运行客户端吧,应该可以看到hell hessian的输出了吧。那就大功告成!

?

再利用 spring集成一下客户端吧。

?

增加一个beans-config.xml的配置在工程目录下:

<?xml version="1.0" encoding="GBK" ?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean name = "hessianService" name="code">public class Say {    /**     * @param args     */    public static void main(String[] args) {                ApplicationContext context = new FileSystemXmlApplicationContext("beans-config.xml");      RemoteHessianService service = (RemoteHessianService) context.getBean("hessianService");        System.out.println(service.sayHello("richie"));    }}

?编译运行就OK拉。。。一个简单的例子就到此结束。

?

注意,访问端口一定要使用jboss或者tomcat之类的端口,不可以使用apache等端口。

热点排行