为什么我的Spring MVC应用程序在更改服务器映射时不起作用?

时间:2016-06-25 18:34:51

标签: maven spring-mvc

我正在研究Pluralsight上概述的Spring MVC“FitnessTracker”应用程序。下面是我的“web.xml”文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                            http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

  <servlet>
    <servlet-name>fitTrackerServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/config/servlet-config.xml</param-value>
    </init-param>
  </servlet>

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

  <display-name>Archetype Created Web Application</display-name>
</web-app>

以上结果使Tomcat生成了一堆异常,从

开始
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)

但是,当我更改<url-pattern>代码与*.html之间的内容时,它可以正常工作。那是为什么?

注意:我的目标是在输入/FitnessTracker/greeting.html而不是/greeting.html时尝试让我的应用程序的控制器运行。我正在使用Intellij IDEA,并使用Tomcat 7.0作为我的服务器进行Maven项目。

2 个答案:

答案 0 :(得分:1)

应用程序运行@ http://localhost:9090/ FitnessTracker / greeting.html 网址。 FitnessTracker是应用程序根上下文,问候 .html映射到Hello控制器方法。请参阅下文。

enter image description here

请您发布web.xml和控制器映射。

答案 1 :(得分:1)

原始代码在网址 - http://localhost:8080/FitnessTracker/greeting.html处运行。所以我不确定为什么你需要更改web.xml。

您尝试使用“/FitnessTracker/*.html”的网址格式无效。 更多细节在这里。 https://stackoverflow.com/a/5441862/6352160