上のApache Tomcat 8.0.32上では動作しません。私はこのようなJSFサーブレットを登録するには、SpringのAbstractContextLoaderInitializer
の拡張を作成しました:SpringのWebApplicationInitializer +サーブレットの登録は、Debian
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext();
applicationContext.register(ApplicationConfig.class, PersistenceConfig.class, SecurityConfig.class);
ServletRegistration.Dynamic facesServlet = servletContext.addServlet("facesServlet", new FacesServlet());
facesServlet.setLoadOnStartup(1);
facesServlet.addMapping("*.xhtml");
servletContext.setInitParameter("javax.faces.PROJECT_STAGE", "Development");
servletContext.setInitParameter("javax.faces.FACELETS_SKIP_COMMENTS", "true");
servletContext.setInitParameter("primefaces.THEME", "bootstrap");
FilterRegistration.Dynamic noCacheFilter = servletContext.addFilter("noCache", CacheControlFilter.class);
noCacheFilter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "*.xhtml");
FilterRegistration.Dynamic characterEncodingFilter = servletContext.addFilter("characterEncoding",
CharacterEncodingFilter.class);
characterEncodingFilter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*");
FilterRegistration.Dynamic openEntityManagerInView = servletContext.addFilter("openEntityManagerInView",
OpenEntityManagerInViewFilter.class);
openEntityManagerInView.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "*.xhtml");
}
この作品のTomcat 7.0.55にうまく( Windows)、サーブレットはTomcat 8.0.32(Debian)ではまったく初期化されていません。
ありがとうございました
この事が起きたときにスタックトレースなどの詳細を投稿する –
WindowsでTomcat 8.0.32を実行しようとしましたか?問題は持続するか? – user710818
これは例外ではないので、スタックトレースを送信することはできません。私はちょうど(通常)JSFでログに初期化されて参照してください。この場合、私はマップされたファイル(.xhtml)へのリクエストは失敗します。そして、これはWindows上でうまく動作します! – user1622058