在我的 Wicket 页面中,我有:@SpringBeanprotected J2EContext j2EContext;在配置中我有:@Bean@RequestScopepublic J2EContext getWebContext() { return new J2EContext(request, response, getSessionStore());}@Beanpublic RequestContextListener requestContextListener() { return new RequestContextListener();}应用程序启动正常,但是当我转到主页时出现异常:Caused by: java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given at net.sf.cglib.proxy.Enhancer.emitConstructors(Enhancer.java:931) at net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:631) at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25) at net.sf.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:329) at net.sf.cglib.proxy.Enhancer.generate(Enhancer.java:492) at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:93) at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:91) at net.sf.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54) at java.util.concurrent.FutureTask.run(FutureTask.java:266)当检票口要注入J2EContext豆子时。我认为这是因为页面在@RequestScope创建此 bean 之前正在渲染。知道如何解决这个问题吗?
1 回答
![?](http://img1.sycdn.imooc.com/54584d560001571a02200220-100-100.jpg)
守候你守候我
TA贡献1802条经验 获得超10个赞
注入 bean Wicket 以两种不同的方式创建代理:
如果 bean 是一个接口,则创建一个标准 java.lang.reflect.Proxy
如果 bean 是一个类,默认使用 cglib
不幸的是,cglib 不能为没有默认构造函数的类创建代理。然而,还有第三种方法可以解决这个问题。只需将 objenesis 作为依赖项添加到您的项目中,Wicket 就会使用它而不是 cglib。
添加回答
举报
0/150
提交
取消