egova_invoker

基于Spring的HttpInvoker实现改写
授权协议 Apache 2.0
开发语言 Java
所属分类 服务器软件、 终端服务器/远程连接
软件类型 开源软件
地区 国产
投 递 者 卞昀
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

基于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);
                }
            });
        }
    }
 相关资料
  • 我们试图将AspectJ实现到现有软件中,以便在进行服务调用后执行一些代码。 注: null 删除了批注,该批注可以正确地自动连接所有内容,但我们的@Aspect从未被调用。 通过声明在批注中添加了CGLIB支持,但无效。 我们尝试直接从Spring中遵循以下文档:@EnableAspectJAutoproxy Javadoc 这似乎是AspectJ处理自动连线依赖关系的代理机制的一个问题。 为什

  • 本文向大家介绍基于spring实现websocket实时推送实例,包括了基于spring实现websocket实时推送实例的使用技巧和注意事项,需要的朋友参考一下 基于spring框架来写的,websocket实时推送例子,具体内容如下 第一步:自己搭建一个springmvc项目,很简单,网上百度都有;pom文件添加以下: 我的spring版本是4.2.4的,所以websocket也是4.2.4的

  • 主要内容:1. 引入 tx 命名空间,2. 配置事务管理器,3. 配置事务通知,4. 配置切点切面,示例 Spring 声明式事务管理是通过 AOP 实现的,其本质是对方法前后进行拦截,然后在目标方法开始之前创建(或加入)一个事务,在执行完目标方法后,根据执行情况提交或者回滚事务。 声明式事务最大的优点就是对业务代码的侵入性低,可以将业务代码和事务管理代码很好地进行解耦。 Spring 实现声明式事务管理主要有 2 种方式: 基于 XML 方式的声明式事务管理。 通过 Annotation 注解

  • 本文向大家介绍基于jQuery实现表格的查看修改删除,包括了基于jQuery实现表格的查看修改删除的使用技巧和注意事项,需要的朋友参考一下 效果图: HTML: CSS: JQ: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 主要内容:1. 开启注解事务,2. 使用 @Transactional 注解,示例 1在《 Spring基于XML实现事务管理》一节中,我们通过 <tx:advice> 元素极大的简化了 Spring 声明式事务所需的 XML 配置。但其实我们还可以通过另一种方式进行进一步的简化,那就是“使用注解实现事务管理”。 在 Spring 中,声明式事务除了可以使用 XML 实现外,还可以使用注解实现,以进一步降低代码之间的耦合度。下面我们就来介绍下,通过注解是如何实现声明式事务管理。 1

  • 本文向大家介绍基于Spring实现文件上传功能,包括了基于Spring实现文件上传功能的使用技巧和注意事项,需要的朋友参考一下 本小节你将建立一个可以接受HTTP multi-part 文件的服务。 你将建立一个后台服务来接收文件以及前台页面来上传文件。 要利用servlet容器上传文件,你要注册一个MultipartConfigElement类,以往需要在web.xml 中配置<multipar