0

I am new to spring MVC and I am trying to build an application. However, while running the application I am getting an error that "No mapping found for HTTP request with URI". I am including my code and console log as well. Please help me to sort this out

This is my Web App Initializer class

public class SpringWebAppInitializer implements WebApplicationInitializer {

    public void onStartup(ServletContext servletContext) throws ServletException {
        AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext();
        appContext.register(ApplicationContextConfig.class);

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

        // UtF8 Charactor Filter.
        FilterRegistration.Dynamic fr = servletContext.addFilter("encodingFilter", CharacterEncodingFilter.class);
        fr.setInitParameter("encoding", "UTF-8");
        fr.setInitParameter("forceEncoding", "true");
        fr.addMappingForUrlPatterns(null, true, "/");

    }

}

This is my ApplicationContextConfig Class

@Configuration
@ComponentScan("com.wfm.account.*")
@EnableTransactionManagement
public class ApplicationContextConfig {

    @Autowired
    private static Environment env;

    private static final String JDBC_DRIVER_CLASS = "oracle.jdbc.driver.OracleDriver";
    private static final String JDBC_URL = "URL";
    private static final String DB_USERNAME = "cisadm";
    private static final String DB_PASSWORD = "PASSWORD";


    @Bean(name = "viewResolver")
    public InternalResourceViewResolver getViewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setPrefix("/WEB-INF/views");
        viewResolver.setSuffix(".jsp");
        return viewResolver;
    }

    @Bean(name = "dataSource")
    public DataSource getDataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();

        //Set Driver properties
        dataSource.setDriverClassName(JDBC_DRIVER_CLASS);
        dataSource.setUrl(JDBC_URL);
        dataSource.setUsername(DB_USERNAME);
        dataSource.setPassword(DB_PASSWORD);


        System.out.println("Data Source is : " + dataSource);

        return (DataSource) dataSource;
    }

    @Bean(name = "transactionManager")
    public DataSourceTransactionManager getTransactionmanagerDataSource() {
        DataSourceTransactionManager txManager = new DataSourceTransactionManager();

        DataSource dataSource = this.getDataSource();
        txManager.setDataSource(dataSource);

        return txManager;

    }

}

This is my Controller

    public class UserController {

    @Autowired
    private UserDao userDao;

    @RequestMapping(value = {"/"}, method = RequestMethod.GET)
    public String welcome(Model model) {
        userDao.insertUser("SYSUSER", "sysuer15", "abc@com.au", "0893266188");
        User userDetails = userDao.findUser("N018003");
        model.addAttribute("user", userDetails);
        return "welcome";
    }

}

This console log

16:36:06.795 [main] DEBUG o.s.web.servlet.DispatcherServlet - Published WebApplicationContext of servlet 'SpringDisptacher' as ServletContext attribute with name [org.springframework.web.servlet.FrameworkServlet.CONTEXT.SpringDisptacher]
16:36:06.797 [main] INFO  o.s.web.servlet.DispatcherServlet - FrameworkServlet 'SpringDisptacher': initialization completed in 2828 ms
16:36:06.798 [main] DEBUG o.s.web.servlet.DispatcherServlet - Servlet 'SpringDisptacher' configured successfully
Dec 20, 2018 4:36:06 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
Dec 20, 2018 4:36:06 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
Dec 20, 2018 4:36:06 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in [11,285] milliseconds
16:36:08.335 [http-nio-8080-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - DispatcherServlet with name 'SpringDisptacher' processing GET request for [/WorkforceManagement/]
16:36:08.355 [http-nio-8080-exec-2] WARN  o.s.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/WorkforceManagement/] in DispatcherServlet with name 'SpringDisptacher'
16:36:08.356 [http-nio-8080-exec-2] DEBUG o.s.web.servlet.DispatcherServlet - Successfully completed request

1 Answers1

0

As I have gone through your code, everything seems perfect except:-

  • @EnableWebMvc for ApplicationContextConfig file.
  • @Controller for UserController file.

I have developed my simple solution using your code, you can find it below:-

Configuration class:-

@EnableWebMvc
@Configuration
@ComponentScan("com.sof.controller")
public class ApplicationContextConfig {
    @Bean(name = "viewResolver")
    public InternalResourceViewResolver getViewResolver() {
       InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
       viewResolver.setPrefix("/WEB-INF/views/");
       viewResolver.setSuffix(".jsp");
       return viewResolver;
    }
}

SpringWebAppInitializer class:-

public class SpringWebAppInitializer implements WebApplicationInitializer {
    public void onStartup(ServletContext servletContext) throws ServletException {
        AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext();
        appContext.register(ApplicationContextConfig.class);

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

UserController class

@Controller
public class UserController {

    @RequestMapping(value = {"/"}, method = RequestMethod.GET)
    public String welcome(Model model) {
      //  userDao.insertUser("SYSUSER", "sysuer15", "abc@com.au", "0893266188");
      //  User userDetails = userDao.findUser("N018003");
        model.addAttribute("user", "Hi Roumil");
        return "welcome";
    }
}

Source code of this Project

If you have any more queries, I would be glad to help you out...