2017-01-25 10 views
0

が検出されない:WebApplicationInitializerが、私はweb.xmlファイルを使用してディスパッチャを設定することができ、私の小さなSpring MVCのプロジェクトで

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class> 
     org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 

    <init-param> 
     <param-name>contextClass</param-name> 
     <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value> 
    </init-param> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>myweb.ApplicationConfig</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

私は、web.xmlから上記の設定を削除したいと思い、私はこのクラスを使用してみてください:

@Configuration 
@EnableWebMvc 
public class ApplicationInitializer implements WebApplicationInitializer { 
    protected Logger logger = Logger.getLogger(ApplicationInitializer.class); 

    @Override 
    public void onStartup(ServletContext servletContext) throws ServletException { 
     logger.info("Application initialization ..."); 

     AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); 
     context.setConfigLocation("myweb"); 

     servletContext.addListener(new ContextLoaderListener(context)); 

     ServletRegistration.Dynamic dispatcher = servletContext.addServlet("DispatcherServlet", new DispatcherServlet(context)); 
     dispatcher.setLoadOnStartup(1); 
     dispatcher.addMapping("/"); 

     logger.info("Application initialized"); 
    } 
} 

残念ながら、上記のコードは呼び出されず、理由はわかりません。理由は何かを助けることができますか?

環境:

SpringServletContainerInitializerクラス:JBossのEAP 6.4は、春はEARにあるWAR内のlibフォルダにある


それは私が右だ場合には、このように動作しなければなりませんSpringServletContainerInitializerを実装し、注釈@HandlesTypes(WebApplicationInitializer.class)を実装しています。 META-INF/servicesフォルダー内のspring-web.jarこのクラスはサービスであると宣言され、呼び出される必要があります。 サーブレット3.0このクラスをパラメータとしてクラスで呼び出す機能は、WebApplicationInitializerインターフェイスを実装しています。問題は、SpringServletContainerInitializerがWebコンテナから呼び出されていないことと、なぜその理由がわからないということです。

答えて

0

エラーが発生していますか?コンテナがBeanを検索するために必要なコンポーネントスキャンがありません。

+0

にモジュールorg.springframework.springを入れています、 、エラーはありません。onStartupは呼び出されません。コンポーネントのスキャンは、WebMvcConfigurerAdapterを拡張する他のクラスで宣言され、その構成とコンポーネントのスキャンが機能します。 変更された投稿を確認して、私の意見でどのように動作するかを書き留めました。 –

0

エラー「javax.servlet.ServletContainerInitializer:プロバイダorg.springframework.web.SpringServletContainerInitializerないサブタイプ」を持っているあなたは、エラーを表示したい場合は、[いいえJBossの

関連する問題