微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

egova_invoker 基于Spring的HttpInvoker实现改写

程序名称:egova_invoker

授权协议: Apache 2.0

操作系统: 跨平台

开发语言: Java

egova_invoker 介绍

基于Spring的httpinvoker实现改写

服务器端调用httpinvoker.invoker 方法,设置InvokerProcess处理

客户端调用: ProxyFactory.proxy 方法生成接口的代理对象,直接调用方法

客户端和服务器端的接口和实体类要一致,实体类必须是可以序列化的

比如:

定义Bean:

   public class DemoBean implements java.io.Serializable{
        /**
         * 
         */
        private static final long serialVersionUID = -5401380996187961689L;
        private String name;
        private String passWork;
        //省略get,set
    }

定义接口:

  public interface DemoService {
        public DemoBean  doTest(DemoBean bean);
    }

客户端调用:

  import com.egova.rpc.proxy.ProxyFactory;
    public class ClientDemo {
        public static void main(String[] args) {
            String bindUrl = "服务器端请求地址/egova_invoker/invoker";
            DemoService demoService = ProxyFactory.proxy(DemoService.class, bindUrl);
            DemoBean  demo = new DemoBean();
            DemoBean  value = demoService.doTest(demo);
            System.out.println(value);
        }
    }

服务端处理:

 import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import com.egova.rpc.remote.httpinvoker;
    import com.egova.rpc.remote.InvokerProcess;
    import com.egova.rpc.support.RemoteInvocation;
    @Controller
    @RequestMapping(value="/egova_invoker")
    public class ServerDemo{
        @RequestMapping(value="invoker")
        public void invoker(HttpServletRequest request, HttpServletResponse  response) {
            httpinvoker.invoker(request, response, new InvokerProcess(){
                public Object process(RemoteInvocation invocation){
                    //获取targetobject,即接口invocation.getInterfaceClazz()实现类
                    Object targetobject = new Object();
                    invocation.invoke(targetobject);
                }
            });
        }
    }

egova_invoker 官网

https://github.com/YanpHu/egova_invoker

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐