HttpInvoker in Spring

来源:互联网 发布:人工智能公司招聘 编辑:程序博客网 时间:2024/06/11 14:31

HttpInvoker的使用与Hessian、Burlap很相似,思想都是一样的,连代码配置都很一样。

就不展开叙述了,可以参照上两篇文章。

一、服务端发布服务

a,配置服务

<!-- Http Invoker --><bean id="httpInvokerSpitter"class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"><property name="service" ref="splitterServiceS" /><property name="serviceInterface"value="com.alibaba.alimonitor.cloudconfig.common.SplitterService"></property></bean>

b,配置URL映射关系

多种方式,这里采用SimpleUrlHandlerMapping,如下:

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="mappings"><value>/burlapSpitter=burlapSpitter/httpInvokerSpitter=httpInvokerSpitter</value></property></bean>
一定注意value内值得拼写,之前一直搞错。。蛋疼。没想清楚

这样远程调用该bean服务的URL为:

http://localhost:8080/api/httpInvokerSpitter

二、客户端调用服务

a,配置

<bean id="httpInvokerSpitter"class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean"><property name="serviceUrl" value="http://localhost:8080/api/httpInvokerSpitter" /><property name="serviceInterface"value="com.alibaba.alimonitor.cloudconfig.common.SplitterService" /></bean>

b,客户端调用试验

    public static void main(String[] args) {        ApplicationContext context = new ClassPathXmlApplicationContext("rmi_test.xml");        // SplitterService splitterService = (SplitterService) context.getBean("moblieSplitterService");        // List<Author> authors = splitterService.getAuthors();        // System.out.println("rmi: \n" + JSON.toJSONString(authors));        //        // SplitterService spitterService = (SplitterService) context.getBean("spitterService");        // List<Author> authors2 = spitterService.getAuthors();        // System.out.println("hessian: \n" + JSON.toJSONString(authors2));        //        // SplitterService burlapSplitterService = (SplitterService) context.getBean("burlapSpitter");        // List<Author> authors3 = burlapSplitterService.getAuthors();        // System.out.println("burlap: \n" + JSON.toJSONString(authors3));        SplitterService httpInvokerSplitterService = (SplitterService) context.getBean("httpInvokerSpitter");        List<Author> authors4 = httpInvokerSplitterService.getAuthors();        System.out.println("httpinvoker: \n" + JSON.toJSONString(authors4));    }

c,输出:

httpinvoker: [{"address":"杭州。浙江","age":25,"name":"程宁"},{"address":"成都。四川","age":24,"name":"亚如"}]



0 0
原创粉丝点击