【问题标题】:Adding transaction support to embedded jetty/GWT RemoteServiceServlet without Spring?在没有 Spring 的情况下向嵌入式 jetty/GWT RemoteServiceServlet 添加事务支持?
【发布时间】:2017-05-24 08:24:57
【问题描述】:

GWT 的 servlet 实现有 onBefore/onAfterDeserialization,它会给我一个钩子来启动和停止事务而无需做任何花哨的事情,但是这些方法不允许我在调用服务方法后正确检查错误情况,我只能访问序列化的返回值,而不是直接访问可能已抛出的任何异常,因此如果不重写 GWT servlet 的部分,就无法决定是否回滚。

我正在考虑使用 aspectj 的编译时编织。但是,这不适用于 Netbeans 的 compile-on-save 功能,因为需要使用 aspectj 编译器重新编译模块。

LTW(加载时间编织)怎么样?有什么方法(或示例)可以在不使用 Spring 框架的情况下将 LTW 添加到 webapp 容器中?

我也在考虑使用基于 Java 动态代理的 AOP,即。在 servlet 前面放置一个代理。同样,问题出现了如何告诉 Jetty WebApp 容器加载代理而不是原始 servlet。

或者是否已经有任何现成的解决方案?

【问题讨论】:

    标签: gwt web-applications aop aspectj embedded-jetty


    【解决方案1】:

    我认为您可以覆盖以下组合 public String processCall(RPCRequest rpcRequest) 来自 RemoteServiceServletRPC.invokeAndEncodeResponse 做你想做的事。

    不理想,因为您需要复制/粘贴几行代码,但实际上只有几行。 我自己也遇到了同样的问题,因为我需要一些自定义,并且相关方法没有我需要的访问修饰符,所以我最终复制/粘贴了一些部分。

    我无法评论您的其余问题,但我不希望找到任何现成的解决方案,因为 GWT-RPC 似乎没有任何新的那里的粉丝;只是维护遗留系统的人。因此,我希望您要么找不到任何东西,要么找到不再维护的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      相关资源
      最近更新 更多