我正在研究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项目。
答案 0 :(得分:1)
应用程序运行@ http://localhost:9090/ FitnessTracker / greeting.html 网址。 FitnessTracker是应用程序根上下文,问候 .html映射到Hello控制器方法。请参阅下文。
请您发布web.xml和控制器映射。
答案 1 :(得分:1)
原始代码在网址 - http://localhost:8080/FitnessTracker/greeting.html处运行。所以我不确定为什么你需要更改web.xml。
您尝试使用“/FitnessTracker/*.html”的网址格式无效。 更多细节在这里。 https://stackoverflow.com/a/5441862/6352160