title: 404 error using Spring MVC Java Config on JBoss
body: <p>I wrote a small Spring MVC application with Java Config. It is working perfectly fine on Tomcat but not on JBoss EAP 6.2. It gets successfully deployed on JBoss but I get this warning when I request any page defined by Spring MVC and 404 error in browser.</p>
  
  <p><code>WARN  [org.springframework.web.servlet.PageNotFound] (http-/127.0.0.1:8080-1) No mapping found for HTTP request with URI [/example-web/pages/login.jsp] in DispatcherServlet with name 'dispatcher'</code>  </p>
  
  <p>Here you can see my code:</p>
  
  <pre><code>public class WebApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
  
  @Override
  protected Class&lt;?&gt;[] getRootConfigClasses() {
      return new Class[] { RootConfiguration.class};
  }
  
  @Override
  protected Class&lt;?&gt;[] getServletConfigClasses() {
      return new Class[] { WebMvcConfig.class };
  }
  
  @Override
  protected String[] getServletMappings() {
      return new String[] { "/*" };
  }
  
  @Override
  protected Filter[] getServletFilters() {
      return new Filter[] { new HiddenHttpMethodFilter() };
  }
  }
  </code></pre>
  
  <p>Here is my Spring MVC configuration:</p>
  
  <pre><code>@EnableWebMvc
  @ComponentScan("com.spring.example.w.controller")
  @Configuration
  public class WebMvcConfig extends WebMvcConfigurerAdapter {
  
      @Override
      public void addViewControllers(ViewControllerRegistry registry) {
          registry.addViewController("login").setViewName("login");
          registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
      }
  
      @Bean
      public InternalResourceViewResolver getInternalResourceViewResolver(){
          InternalResourceViewResolver resolver = new InternalResourceViewResolver();
          resolver.setPrefix("/pages/");
          resolver.setSuffix(".jsp");
          return resolver;
      }
  }
  </code></pre>
  
  <p>And RootConfig:</p>
  
  <pre><code>@Configuration
  @ComponentScan
  public class RootConfiguration {
  }
  </code></pre>
  
  <p>During deployment, I can see in the log that the requests do get mapped:</p>
  
  <pre><code>INFO  [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] (ServerService Thread Pool -- 71) Mapped "{[/start],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.web.servlet.ModelAndView com.spring.example.w.controller.StartController.handleStart() throws javax.servlet.ServletException,java.io.IOException
  INFO  [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] (ServerService Thread Pool -- 71) Mapped URL path [/login] onto handler of type [class org.springframework.web.servlet.mvc.ParameterizableViewController]
  INFO  [org.springframework.web.context.ContextLoader] (ServerService Thread Pool -- 71) Root WebApplicationContext: initialization completed in 2530 ms
  INFO  [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/example-web]] (ServerService Thread Pool -- 71) Initializing Spring FrameworkServlet 'dispatcher'
  INFO  [org.springframework.web.servlet.DispatcherServlet] (ServerService Thread Pool -- 71) FrameworkServlet 'dispatcher': initialization started
  </code></pre>
  
  <p>Any help about why I get 404 error and this warning is highly appreciated. Once again I should emphasize that it is working on Tomcat. Thanks in advance.</p>