2016-12-27 3 views
0

私はプログラムで複数のサーブレットを登録するために以下のクラスを書きましたが、これはうまくいきません。WebApplicationInitializerに複数のサーブレットをプログラム的に登録するにはどうすればいいですか?

public class appIntializer implements WebApplicationInitializer { 

    @Override 
    public void onStartup(ServletContext context) throws ServletException { 
     XmlWebApplicationContext appCtxt = new XmlWebApplicationContext(); 
     appContext.setConfigLocation("/WEB-INF/MVCLogin-servlet.xml"); 
     context.addListener(new ContextLoaderListener(appCtxt)); 

     ServletRegistration.Dynamic dispatcher = context.addServlet("MVC", 
       new DispatcherServlet(appCtxt)); 
     ServletRegistration.Dynamic testServlet= context.addServlet(
       "Test", TestServlet.class); 
     testServlet.addMapping("/test"); 

     Dynamic securityFilter = context.addFilter(
       AbstractSecurityWebApplicationInitializer.DEFAULT_FILTER_NAME, 
       DelegatingFilterProxy.class); 
     securityFilter.addMappingForUrlPatterns(
       EnumSet.allOf(DispatcherType.class), false, "/*"); 
     dispatcher.setLoadOnStartup(1); 
     dispatcher.addMapping("/"); 

    } 
} 

Webアプリケーションの初期化時に両方のサーブレットをロードする必要があります。

+0

何が機能していません。 –

+0

初期化中にサーブレットをロードできませんでした。 –

+1

起動時にサーブレットを1つだけロードしています。 –

答えて

1

私は問題だったsetLoadonstartupを逃しました。

public class appIntializer implements WebApplicationInitializer { 

@Override 
public void onStartup(ServletContext context) throws ServletException { 
    XmlWebApplicationContext appCtxt = new XmlWebApplicationContext(); 
    appContext.setConfigLocation("/WEB-INF/MVCLogin-servlet.xml"); 
    context.addListener(new ContextLoaderListener(appCtxt)); 

    ServletRegistration.Dynamic dispatcher = context.addServlet("MVC", 
      new DispatcherServlet(appCtxt)); 
    ServletRegistration.Dynamic testServlet= context.addServlet(
      "Test", TestServlet.class); 
    testServlet.setLoadOnStartup(2); 
    testServlet.addMapping("/test"); 

    Dynamic securityFilter = context.addFilter(
      AbstractSecurityWebApplicationInitializer.DEFAULT_FILTER_NAME, 
      DelegatingFilterProxy.class); 
    securityFilter.addMappingForUrlPatterns(
      EnumSet.allOf(DispatcherType.class), false, "/*"); 
    dispatcher.setLoadOnStartup(1); 
    dispatcher.addMapping("/"); 

}} 
関連する問題