3 回答

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
您應(yīng)該在 FilterRegistrationBean 定義中執(zhí)行此操作,即:
@Bean
public FilterRegistrationBean<WicketFilter> wicketFilterRegistration(){
WicketApplication webApplication = new WicketApplication();
? ? webApplication.setConfigurationType(RuntimeConfigurationType.DEVELOPMENT);
webApplication.init();//HERE!
順便說一句:考慮使用最新的 8.x 版本,即 8.5.0

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
不幸的是,您的解決方案沒有奏效。再次拋出同樣的錯(cuò)誤。但是我最終能夠確定問題所在。
問題出在我的 Wicket Application 類的構(gòu)造函數(shù)中。在這個(gè)構(gòu)造函數(shù)中,我調(diào)用了 super.init()。刪除此應(yīng)用程序后啟動(dòng)時(shí)沒有 Bean 實(shí)例化錯(cuò)誤。
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();
}
}
添加回答
舉報(bào)