我在一个方法上写了2条注释,并在2条周围建议中处理了每个注释值。

连接点方法如下:

@CacheFetch(cacheName = CacheManager.CACHE_DATASOURCE_INFO)

@TenantAware(method = OperationMethod.OPERATION, operation = OperationType.GET)

public DataSourceInfo fetchDataSource(String sourceId) {...}

建议1像这样:

@Around("within(com.xx.yy.zz..*) && @annotation(fetch)")

public Object fetchFromCache(ProceedingJoinPoint pjp, CacheFetch fetch) throws Throwable {...}

Advice2是这样的:

@Around("isXXX() && @annotation(tenantAware)")

public Object handleTenantAware(ProceedingJoinPoint pjp, TenantAware tenantAware) throws Throwable {...}

这两个建议的不同之处在于Aspect类和Aspect类均已实现Ordered接口。 当程序到达fetchDataSource连接点方法时,发生异常:

java.lang.IllegalStateException: Required to bind 2 arguments, but only bound 1 (JoinPointMatch was NOT bound in invocation)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.argBinding(AbstractAspectJAdvice.java:591)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)

at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)

at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:671)

如果我删除其中一项建议,则错误消失,其余建议也可以正常工作。 我已经搜索了该问题,并且大多数结果来自非常古老的春季版本。

我当前的Spring框架和方面版本是4.1.6。 我尝试升级到4.1.9和4.3.20,问题仍然存在。

恕我直言,上面的代码应该可以工作,而我自己也没有发现任何错误。 我不确定这是错误还是其他未知的信息。 任何帮助将不胜感激。 谢谢。

java around_java - 使用Spring AOP时,在单个连接点上具有参数绑定的多个Around建议会导致错误 - 堆栈内存溢出...相关推荐

  1. java jini dll_java - Jini / JavaSpaces发现错误 - 堆栈内存溢出

    我在Eclipse中编写了这些类,并启动了Launch-All脚本和Run示例. 有用. 之后,我将这些类导出到可执行的jar(JavaSpaceClient.jar)中,并使用以下命令尝试了该jar ...

  2. java程序包r不存在_java - 从命令行使用Gradle构建时,“程序包R不存在”错误 - 堆栈内存溢出...

    我正在尝试从命令行使用Gradle构建一个Android项目,但是当我想要更改目录结构时发现了一个问题. 目前是这样的: . └── main ├── AndroidManifest.xml ├── ...

  3. raspberry pi java8_java - Raspberry PI 2 Java 8 JVM错误 - 堆栈内存溢出

    我正在构建基于Java 1.8,spring,hibernate,mysql的Web应用程序,并使用tomcat作为Web服务器. 现在我的应用正在记录(每隔5秒)树莓的系统数据,例如: cpu温度, ...

  4. pdf 中的java运行,java - 从pdf文件读取特定位置的itext在intellij中运行,并提供所需的输出,但是可执行jar抛出错误 - 堆栈内存溢出...

    我正在从n个页面的输入pdf文件中读取特定位置,并在这些位置上列出文本. 然后,我编写一个新的pdf文档,并将列表中的这些字符串写入包含单元格的表中. 我提出了两个主要问题. 我想在表中有三列,但是如 ...

  5. 源服务器未能找到目标资源的表示或者不愿,java - 源服务器没有找到目标资源的当前表示,或者不愿意透露一个存在。 关于部署到 tomcat - 堆栈内存溢出...

    ===============>>#1 票数:12 我已经使用 Spring 和 Eclipse IDE 构建了一个应用程序. 当我从 Eclipse IDE 启动项目时,一切都很好,但是 ...

  6. java replace第二个_java - 错误的第二个参数类型:从片段内调用.replace() - 堆栈内存溢出...

    我知道这个问题经常被问到,但是没有一个被接受的解决方案对我有用. 尝试从其他片段之一启动"首选项菜单"片段时,出现经典的"错误的第二个参数类型"错误. 不幸的是 ...

  7. android消息发送字符串,android - 从Android客户端通过HTTP在HL7消息中发送base64字符串时遇到错误 - 堆栈内存溢出...

    我正在android客户端(API 17)中使用HL7消息,并使用Hapi库生成和解析HL7消息.当我传输小的字符串值时,该消息工作正常. 但是我必须通过Http将图像发送到HL7服务器,为此,我正在 ...

  8. axis2 java客户端内存溢出怎么办_java - Axis2-总是出现404错误 - 堆栈内存溢出

    我试图将一些Web服务存根从Metro移到Axis2,但是在使用wsdl2java生成存根后,每次尝试进行服务调用时,我都会不断收到404错误. 16/12/2010 11:14:57 AM org. ...

  9. java preparedstatement 关闭_java - 如果基础连接已关闭,为什么isClosed()方法对PreparedStatements不返回true? - 堆栈内存溢出...

    就像标题所说的那样,我想知道为什么准备好的语句.isClosed()方法在关闭基础流(使用JDBC)后将返回false. public void someTest() throws SQLExcept ...

最新文章

  1. 【青少年编程】【三级】青蛙捕虫
  2. python的数据清理_Python数据清理,清洗
  3. cpu序列号能告诉别人嘛_微信这个开关不删除,别人手机能随意登录你的微信,学会告诉家人...
  4. 2021.02.03 Visual QA论文阅读
  5. javascript 浮点数加减乘除计算会有问题, 整理了以下代码来规避这个问题
  6. MyEclipse使用总结——MyEclipse10安装SVN插件
  7. c语言中左右对齐的作用,c语言中右对齐的符号
  8. Linux / Ubuntu系统查看磁盘空间及目录容量
  9. jQuery 图片轮流展示效果
  10. FreeRTOS---堆内存管理(一)
  11. Asp.net 定时任务
  12. 消防给水及消火栓系统技术规范_消防给水及消火栓系统技术规范5.1 消防水泵 习题...
  13. template 的简单使用
  14. 摆摊真的一个月能上万嘛
  15. 数据库水平拆分和垂直拆分区别(以mysql为例)
  16. Java Adapter Pattern(适配器模式)
  17. 用c语言怎样将swf转化为pdf,利用ABCpdf.NET将网页转换成PDF的方法小结
  18. ThoughtWorks持续集成平台GO开源了
  19. 批量将txt转换成Excel格式
  20. 计算机445 135 139端口,Win7如何关闭445 135 138 139端口

热门文章

  1. 软件研发类应届毕业生培养考核的三个阶段
  2. css3圣诞节喜庆文字祝福代码
  3. 什么是Ninja -
  4. 根据经纬度计算范围_高考地理地理计算专题
  5. 使用HTML创建表单
  6. 搭建公司内部论坛 只需简单三步 1 (安装Discuz)
  7. StratoVirt 中的 PCI 设备热插拔实现
  8. 解决线上概率性异常 TransactionTooLargeException
  9. 从零开始学Python爬虫系列:Matplotlib FuncAnimation这1个功能,加1个更新函数,画出最简单的动图,让你爬取的数据动起来。(附:图片上加弹幕功能)
  10. 【2309. 兼具大小写的最好英文字母】