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 举报,一经查实,本站将立刻删除。