`
xiefeifeihu
  • 浏览: 99254 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Red5在Remoting时如果添加了@Transactional就找不到方法的原因

阅读更多

如果一个Remoting的service实现了某接口,并且有@Transactional的标注,那么客户端在调用服务器方法的时候很可能报找不到方法的错误。这是因为@Transactional默认使用jdk的动态代理,red5寻找方法的时候去找接口声明的方法。如果该方法没在接口中声明,自然就找不到。

要解决这个问题比较直接的方法是在接口中声明。这样做会比较繁琐。所有Remoting方法都得在接口中声明。

另一种方法是强制使用CGLib代理,这只需要简单配置即可,不必修改代码。配置方法是在Spring配置文件中加上:

<aop:aspectj-autoproxy proxy-target-class="true" />

<!-- 使用annotation定义事务 -->
<tx:annotation-driven transaction-manager="transactionManager"
		proxy-target-class="true" />
分享到:
评论

相关推荐

    .Net Remoting系列(5)

    在.NET Remoting中,远程方法抛出的异常会被封装成特殊类型的RemotingException,客户端需要正确处理这些异常以确保程序的健壮性。 通过以上讨论,我们可以看出.NET Remoting在构建五子棋对战游戏中的关键作用,它...

    spring使用注解暴露remoting服务

    Spring会根据类型或名称(如果指定了`@Qualifier`)找到匹配的bean,并将其注入到被注解的字段、构造器参数或者方法参数中。这对于实现松耦合和降低代码复杂度非常有帮助。 `@Transactional`注解是Spring提供的事务...

    linux下red5详细安装文档

    在Linux环境下,Red5是一款基于Java的开源流媒体服务器,其功能与Adobe的FMS相似,主要用于提供基于Flash的流媒体服务。Red5支持RTMP协议,与FMS完全兼容,能够流化FLV和MP3文件,实现客户端流的实时录制为FLV文件,...

    通过remoting和Activator远程连接服务器并调用方法

    这个技术对于分布式系统开发至关重要,特别是在需要跨网络调用对象方法时。在这个场景中,我们将关注如何在C# WinForms应用中利用Remoting和Activator来实现远程连接到服务器,并调用服务器上的方法。 首先,我们要...

    c#remoting简单例子

    C# Remoting是.NET Framework提供的一种机制,它允许在不同应用程序域(AppDomains)之间进行对象的透明通信,甚至跨越不同的进程或机器。这个“c# remoting简单例子”旨在帮助初学者理解Remoting的基本概念和工作...

    Remoting基本原理及其扩展机制

    但是,当涉及到跨应用程序域调用时,这种方式不再适用,因为不同的应用程序域不能共享相同的线程栈。此时,就需要使用基于消息的方法调用来替代。 基于消息的方法调用主要包括以下步骤: 1. **客户端**: 创建代理...

    red5中使用remoteObject

    在Red5中使用RemoteObject是实现Flash客户端与服务器端通信的一种技术。Red5是一个开源的流媒体服务器,它支持实时消息协议(RTMP)、实时传输协议(RTSP)以及HTTP流等多种流媒体交互方式。RemoteObject是Adobe ...

    remoting实例

    在.NET Remoting中,服务端(服务器)可以创建一个可访问的对象,而客户端(客户端)则能够远程调用这个对象的方法,仿佛该对象就在本地运行一样。 在这个"remoting实例"中,我们主要探讨以下几个关键知识点: 1. ...

    RED5 BLAZEDS

    标题 "RED5 BLAZEDS" 指的是一个基于RED5服务器与BlazeDS集成的示例项目,用于Flex 4开发。RED5是一个开源流媒体服务器,它支持实时通信协议如RTMP(Real-Time Messaging Protocol),允许用户进行音频、视频流传输...

    Remoting实例

    4. **远程访问**:在Remoting中,远程访问意味着客户端可以透明地调用服务器上的方法,就像这些方法是本地定义的一样。这是通过在客户端创建远程对象的代理实现的,该代理是服务器对象的一个副本,能够将调用转发到...

    Remoting双向通信v1.0

    Remoting双向通信是一种在.NET Framework中实现客户端与服务器之间高效、灵活的数据交换技术。这个"Remoting双向通信v1.0"可能是一个实现双向通信的软件包或框架,旨在简化远程对象调用的过程,使应用程序能够实时地...

    VB.NET Remoting实例

    AppDomain是.NET运行时的一个安全边界,每个应用程序都运行在一个或多个这样的域中。这提供了沙箱环境,使得一个应用程序的故障不会影响到其他应用程序,同时也支持类型隔离和版本控制。 VB.NET Remoting的工作流程...

    C#remoting入门示例

    - **客户端调用**:在客户端代码中,通过接口类型创建一个代理对象,然后就可以像调用本地对象一样调用远程对象的方法。 **4. 示例中的RemotingExample** "RemotingExample"可能包含以下组件: - **Server端**:...

    remoting学习

    2. 远程对象:在Remoting中,一个对象可以在一个进程内创建,然后被另一个进程访问,就像本地对象一样。这需要将对象封装为可以跨进程传输的类型。 3. 通道:Remoting通过通道来实现跨进程通信,通道负责对象的序列...

    基于remoting的数据库开发应用

    4. **创建客户端代理**: 在客户端,使用`Activator.CreateInstance()`或`ChannelServices.RegisterChannel()`等方法创建服务器对象的代理实例,然后就可以像调用本地对象一样调用远程对象的方法。 5. **调用远程方法...

    Remoting事件(服务端广播) 源码

    5. **事件传播**:.NET Remoting机制负责将事件通知传递到所有订阅的客户端,即使它们位于不同的机器上。 6. **客户端响应**:每个订阅了事件的客户端都会接收到事件通知,并执行相应的事件处理代码。 在实际开发中...

Global site tag (gtag.js) - Google Analytics