WARN o.s.web.servlet.PageNotFound - No mapping found for HTTP request with URI

17,102

You need to add support for static web resources.

To configure it to be managed by Spring see this question, for example.

Share:
17,102
krishna Ram
Author by

krishna Ram

Updated on June 27, 2022

Comments

  • krishna Ram
    krishna Ram almost 2 years

    I am getting this error while adding Assets folder. It is giving error for every file which is included from "assets" folder.

    WARN  o.s.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/assets/plugins/datepicker/datepicker3.css] in DispatcherServlet with name 'dispatcher'
    

    Here is the Dispacther Config file

    package com.springmaven.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.EnableWebMvc;
    import org.springframework.web.servlet.view.InternalResourceViewResolver;
    
    
    @Configuration
    @EnableWebMvc
    @ComponentScan({"com.springmaven.controller"})
    public class DispatcherConfig {
    
        @Bean
        public InternalResourceViewResolver getInternalResourceViewResolver()
        {
            InternalResourceViewResolver internalResourceViewResolver=new InternalResourceViewResolver();
            internalResourceViewResolver.setPrefix("/WEB-INF/JSP/");
            internalResourceViewResolver.setSuffix(".jsp");
            return internalResourceViewResolver;
        }   
    }
    

    This is App Config

    package com.springmaven.config;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRegistration;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.WebApplicationInitializer;
    import org.springframework.web.context.ContextLoaderListener;
    import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
    import org.springframework.web.servlet.DispatcherServlet;
    
    public class AppIntializer implements WebApplicationInitializer{
    
    
        @Autowired
        public void onStartup(ServletContext servletCon) throws ServletException {
            // TODO Auto-generated method stub
            AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
            rootContext.register(ApplicationConfig.class);
            servletCon.addListener(new ContextLoaderListener(rootContext));
    
            AnnotationConfigWebApplicationContext servletConfig = new AnnotationConfigWebApplicationContext();
            servletConfig.register(DispatcherConfig.class);
    
            ServletRegistration.Dynamic registration = servletCon.addServlet("dispatcher", new DispatcherServlet(servletConfig));
            registration.setLoadOnStartup(1);
            registration.addMapping("/");
        }
    
    }
    

    This is security Config

    package com.springmaven.config;
    
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.security.authentication.AuthenticationManager;
    import org.springframework.security.authentication.AuthenticationProvider;
    import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
    import org.springframework.security.config.annotation.web.builders.HttpSecurity;
    import org.springframework.security.config.annotation.web.builders.WebSecurity;
    import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
    import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
    import org.springframework.security.data.repository.query.SecurityEvaluationContextExtension;
    import org.springframework.security.web.csrf.CsrfTokenRepository;
    import org.springframework.security.web.csrf.HttpSessionCsrfTokenRepository;
    import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
    
    
    @Configuration
    @EnableWebSecurity
    public class SecurityConfig extends WebSecurityConfigurerAdapter{
    
    
    
        @Autowired
        private AuthenticationProvider customAuthenticationProvider; 
    
        @Autowired
        CustomSuccessHandler customSuccessHandler;
    
          @Override
          public void configure(WebSecurity web) throws Exception {
            web
              .ignoring()
                 .antMatchers("/assets/**"); 
          }
    
        @Autowired
        public void configure(AuthenticationManagerBuilder auth) throws Exception {
             auth
             .authenticationProvider(customAuthenticationProvider);
        }
    
    
        @Override
        protected void configure(HttpSecurity http) throws Exception {
    
            http.authorizeRequests().antMatchers("/assets/**").permitAll()
            .and()
               .formLogin().loginPage("/loginPage")
                    .defaultSuccessUrl("/homePage")
                    .failureUrl("/loginPage?error")
                    .usernameParameter("username").passwordParameter("password")     
                    .and().csrf().csrfTokenRepository(csrfTokenRepository())
                .and()
                    .logout().logoutSuccessUrl("/loginPage?logout"); 
    
        }
    
        @Bean
        public SecurityEvaluationContextExtension securityEvaluationContextExtension() {
            return new SecurityEvaluationContextExtension();
        }
    
    
        @Override
        public AuthenticationManager authenticationManagerBean() throws Exception {
         return super.authenticationManagerBean();
        }
    
        private CsrfTokenRepository csrfTokenRepository() 
        { 
            HttpSessionCsrfTokenRepository repository = new HttpSessionCsrfTokenRepository(); 
            repository.setSessionAttributeName("_csrf");
            return repository; 
        }
    }
    

    Folder Structure source->main->webapp->WEB-INF->JSP->assets(This folder is not recognised) source->main->webapp->WEB-INF->JSP->homePage.jsp

    From the Style or Icon is not coming in homePage.

    homePage.jsp

    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <title>New Member</title>
      <!-- Tell the browser to be responsive to screen width -->
      <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
      <!-- Bootstrap 3.3.5 -->
      <!--Favicon Image -->
      <link rel="shortcut icon" href="assets/dist/img/favicon.ico"/>
      <link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css"/>
       <link rel="stylesheet" href="assets/plugins/datepicker/datepicker3.css">
     </head>   
     <body>
        Welcome,
          <a href="<c:url value="/logout" var="Signout" />" class="btn btn-default btn-flat"></a>
    
                    <form id="logout" action="${Signout}" method="post" >
                      <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
                    </form>
                    <c:if test="${pageContext.request.userPrincipal.name != null}">
                        <a href="javascript:document.getElementById('logout').submit()">Logout</a>
                    </c:if>
     </body>
     </html>