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();
}
}
添加回答
舉報