Question

I am trying to use BeanNameUrlHandlerMapping in Spring 4.0.3. I run web application and everything was OK. There were no errors in the console log.

But I got this WARNING message :

Apr 22, 2014 9:47:48 AM org.springframework.web.servlet.PageNotFound noHandlerFound WARNING: No mapping found for HTTP request with URI [/springmvc_beanurlhandler/beanurhandlermapping.html] in DispatcherServlet with name 'dispatcher'

When I clicked the link, I got 404 error page.

This is my code:

Controller

public class BeanNameUrlHandlerMappingController extends AbstractController {

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        // TODO Auto-generated method stub
        String message = "BeanNameUrlHandlerMapping invoked!";
        System.out.println(message);

        ModelAndView modelAndView = new ModelAndView("success");
        modelAndView.addObject("message", message);

        return modelAndView;
    }

}

dispatcher-servlet

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

    <context:component-scan base-package="com.fanjavaid.controller" />

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

    <bean id="defaultHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />

    <!-- Some Url Mapping -->
    <bean name="/beanurlhandlermapping.html" class="com.fanjavaid.controller.BeanNameUrlHandlerMappingController" />

</beans>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>springmvc_beanurlhandler</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

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

  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>*.html</url-pattern>
  </servlet-mapping>

</web-app>

project structure

Above is my project structure.

Please help, thank you.

Was it helpful?

Solution

In dispatcher-servlet.xml, you have mapping to controller as:

    <bean name="/beanurlhandlermapping.html" class="com.fanjavaid.controller.BeanNameUrlHandlerMappingController" />

Make change in index.jsp as:

    <a href="beanurlhandlermapping.html">Click to test BeanURLHandlerMapping</a>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top