3 回答
TA贡献1830条经验 获得超9个赞
您应该在 FilterRegistrationBean 定义中执行此操作,即:
@Bean
public FilterRegistrationBean<WicketFilter> wicketFilterRegistration(){
WicketApplication webApplication = new WicketApplication();
webApplication.setConfigurationType(RuntimeConfigurationType.DEVELOPMENT);
webApplication.init();//HERE!
顺便说一句:考虑使用最新的 8.x 版本,即 8.5.0
TA贡献1831条经验 获得超4个赞
不幸的是,您的解决方案没有奏效。再次抛出同样的错误。但是我最终能够确定问题所在。
问题出在我的 Wicket Application 类的构造函数中。在这个构造函数中,我调用了 super.init()。删除此应用程序后启动时没有 Bean 实例化错误。
public class WicketApplication extends AuthenticatedWebApplication {
// This caused the problem with instatiating the FilterRegistrationBean
// public WicketApplication() {
// super.init();
// }
@Override
protected void init() {
super.init();
getComponentInstantiationListeners().add(new SpringComponentInjector(this));
mountPage("/admin", AdminPage.class);
mountPage("/login", LoginPage.class);
}
@Override
public Class<? extends Page> getHomePage() {
return AdminPage.class;
}
@Override
protected Class<? extends AbstractAuthenticatedWebSession> getWebSessionClass() {
return AppAuthenticatedWebSession.class;
}
@Override
protected Class<? extends WebPage> getSignInPageClass() {
return LoginPage.class;
}
public static WicketApplication get() {
return (WicketApplication) Application.get();
}
}
添加回答
举报