读书人

Spring HTTP Invoker 提供远路 服务

发布时间: 2012-11-20 09:55:43 作者: rapoo

Spring HTTP Invoker 提供远程 服务

Spring HTTP Invoker例子,Spring HTTP Invoker是spring框架中的一个远程调用模型,执行基于HTTP的远程调用,也就是说,可以通过防火墙,并使用java的序列化机制在网络间传递对象。客户端可以很轻松的像调用本地对象一样调用远程服务器上的对象,要注意的一点是,服务端、客户端都是使用Spring框架。下面通过一个例子,来讲解Spring HTTP Invoker的使用,这里使用的是Spring3.0框架。

整体流程如下:
?1.服务器端:通过Spring HTTP Invoker,将服务接口的某个实现类提供为远程服务。
?2.客户端:通过Spring HTTP Invoker代理,向服务端发送请求,远程调用服务端接口。

注意事项:由于是通过网络传输,所以服务端、客户端的POJO类,都要实现Serializable接口,进行序列化、反序列化。

?先看看服务端的配置:
?1.先提供一个服务接口

?通过以上5步,就配置好了Spring HTTP Invoker服务,地址:http://${serviceName}:${port}/${contextPath}/test



下面就是客户端怎么调用远程Spring HTTP Invoker服务。
1.创建服务接口及网络间传输的POJO类,为了方便,可以将服务器端创建好的的UserService.java和UserInfo.java拷贝到客户端,或打个jar包放到lib下。


2.配置HTTP Invoker的代理,用来调用远程服务,spring配置文件如下:

?3. 下面是使用Spring注解的方式,当然 ,你也可以使用配置的方式,把下面的类交给Spring管理,再把httpService通过set的方式,注入进来。

package spring.invoker; import javax.annotation.Resource; import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import spring.invoker.service.UserService;@Controllerpublic class InvokerAction {    @Resource private UserService httpService;    @RequestMapping(value="/httpTest")    public void testInvoker(){         System.out.println(httpService.getUserEmailbyName("xxx"));    }}
?

文章来源:http://www.juziku.com/wiki/2326.htm

读书人网 >编程

热点推荐