我有以下Spring REST控制器:
@RestController
public class QuoteController {
@RequestMapping(value = {"/quotes"}, method = RequestMethod.GET)
public String getQuotes(@PathVariable("accountId") String accountId)
throws Exception {
return "100.00";
}
}
以及以下方面和上下文配置文件:
@Component
@Aspect
public class TestControllerAspect {
@Around("execution(@org.springframework.web.bind.annotation.RequestMapping public * com.test.controller..*.*(..))")
public Object controllerAroundAdvice(ProceedingJoinPoint joinPoint) throws Throwable {
Object[] args = joinPoint.getArgs();
for (Object o : joinPoint.getArgs()) {
System.out.println(o.toString());
}
return joinPoint.proceed();
}
}
@Configuration
@ComponentScan("com.test.controller")
@EnableWebMvc
@EnableCaching
@EnableAspectJAutoProxy
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
public TestControllerAspect controllerAspect() {
return new TestControllerAspect();
}
}
当我在JBoss EAP 6中部署此代码时,我从spring框架中收到以下错误:
bean初始化失败;嵌套异常是java.lang.IllegalArgumentException:错误注释类型模式仅在Java 5合规级别或更高级别受支持。
我使用@annotation尝试了上述切入点但收到了类似的错误。 stackoverflow中有关于这些错误的类似帖子,但它们指的是旧版本的spring和aspectj weaver jar。我正在使用spring 4.1.6,我相信已经用spring重新打包了aspectj类。
是否有其他人遇到此错误。顺便说一下,我使用的是java 1.8。 感谢回应。