0

Here is my controller method:

@RequestMapping(value = "/login/{id}", method = RequestMethod.GET)
public String doLogin(@PathVariable long id, HttpServletRequest request, HttpServletResponse response, Model model) {

logger.info(String.format(
              Constants.LogMessages.NEW_GET_REQUEST_FROM_IP,
              request.getRemoteAddr()));

logger.info("/login/{id}");

return "login";

}

and my appServlet-context.xml:

    <!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <beans:property name="prefix" value="/WEB-INF/views/" />
    <beans:property name="suffix" value=".html" />
</beans:bean>

The exception i get in this method is :

WARN PageNotFound - No mapping found for HTTP request with URI [/project/WEB-INF/views/login.html] in DispatcherServlet with name 'appServlet'

Thing is, when i change the "suffix" to .jsp and the name of the file from html to .jsp it works.

any idea why?

EDIT:

Here is my web.xml:

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/spring/root-context.xml</param-value>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

<servlet-name>appServlet</servlet-name>

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

<init-param>

  <param-name>contextConfigLocation</param-name>

  <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

<servlet-name>appServlet</servlet-name>

<url-pattern>/</url-pattern>

<filter-name>cors</filter-name>

<filter-class>src.com.project.context.CorsFilter</filter-class>

<filter-name>cors</filter-name>

<url-pattern>/*</url-pattern>

Urbanleg
  • 6,252
  • 16
  • 76
  • 139

2 Answers2

1

In your .xml file try changing:

<servlet-name>appServlet</servlet-name>

<url-pattern>/</url-pattern>

To:

<servlet-name>appServlet</servlet-name>

<url-pattern>*.html</url-pattern>
wSchmidt
  • 100
  • 5
0

Just a thought. May be your build process didn't copy the /project/WEB-INF/views/login.html file into the war. Unwar and check if that exists.

Sujoy
  • 802
  • 11
  • 22