@Async
Spring プロジェクトでアノテーションを使用しようとしています。そのために、次の行を servlet-config.xml に追加しました
<task:annotation-driven />
。その結果、プロジェクトを実行できなくなり、次のエラーが発生します。
Caused by: org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class [class com.dynamease.web.user.social.LinkedInController]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
ここに私のLinkedInControllerクラスがあります:
@Controller
@Scope(proxyMode = ScopedProxyMode.INTERFACES)
public class LinkedInController {
private static final Logger logger = LoggerFactory.getLogger(LinkedInController.class);
private final LinkedIn linkedIn;
@Inject
public LinkedInController(LinkedIn linkedIn) {
logger.info("Initialisation du controleur linkedIn.");
this.linkedIn = linkedIn;
}
@RequestMapping(value = "linkedin")
public ModelAndView categorize() {
categorizeAndStore(linkedIn);
return mav;
}
@Async
public Future<Boolean> categorizeAndStore( LinkedIn source) {
// java stuff
return new AsyncResult<Boolean>(true);
}
}
<aop:scoped-proxy>
私が見つけた解決策はorを追加することでした@Scope(proxyMode = ScopedProxyMode.INTERFACES)
が、ご覧のとおり、その存在は問題ではありません。