我在springmvc收到警告 as在具有名称'fitTrackerServlet'的DispatcherServlet中找不到具有URI [/ FitnessTracker /]的HTTP请求的映射
INFO: FrameworkServlet 'fitTrackerServlet': initialization completed in 2194 ms
Feb 26, 2017 9:43:08 AM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/FitnessTracker/] in DispatcherServlet with name 'fitTrackerServlet'
当我按下网址http://localhost:8080/fitnessTracker/时,我收到404错误。 感谢
<?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_2_5.xsd" version="2.5">
<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>/*</url-pattern>
</servlet-mapping>
<display-name>Archetype Created Web Application</display-name>
</web-app>
和我的servlet-config.xml
<?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"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
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-3.2.xsd">
<mvc:annotation-driven />
<context:component-scan base-package="com.pluralsight.controller"></context:component-scan>
<!--
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>
</beans>
和我的控制器
@Controller
public class HelloController {
@RequestMapping(value = "/greeting")
public String sayHello (Model model) {
System.out.println("Test");
model.addAttribute("greeting", "Hello WorldX");
return "hello";
}
}
答案 0 :(得分:0)
您的组件扫描基础包是否与HelloController
所在的包匹配?如果没有,那就是问题。
<context:component-scan base-package="com.pluralsight.controller"></context:component-scan>
配置组件扫描指令以与@Configuration一起使用 类。 basePackageClasses()或者 可以指定basePackages()(或其别名value())来定义 要扫描的特定包。
Spring找不到您的HelloController,因此不会映射任何内容。
否则您也可以按照these步骤进行操作。
答案 1 :(得分:0)
我想知道您为什么要使用XML配置应用程序。使用this工具,您可以使用Spring启动应用程序启动maven项目,默认情况下,该应用程序已经配置为完全构建您想要的内容。
然后你只需要一个类:
@RestController
@RequestMapping("/fitnessTracker")
public class HelloController {
@RequestMapping(value = "/greeting")
public String sayHello (Model model) {
System.out.println("Test");
model.addAttribute("greeting", "Hello WorldX");
return "hello";
}
}
就是这样,Spring会为你做其余的事情;)
答案 2 :(得分:0)
在我的情况下,问题是我正在使用此url模式
<url-pattern>/*</url-pattern>
代替此
<url-pattern>/</url-pattern>
我也必须添加
@RequestMapping(value = "/fitnessTracker")
在
下@Controller
注释。
我在https://www.baeldung.com/spring-mvc-404-error找到了该模式的解决方案。