Java @RequestMapping在Spring 1.5.2.0版本中不起作用
我正在尝试运行一个spring boot项目。当我选择1.5.2版时,RequestMappingURL不起作用。它总是给我404错误 有人可以确认我是否有任何标签丢失或版本中的任何设置更改。或者其他我错过的东西 POM.xmlJava @RequestMapping在Spring 1.5.2.0版本中不起作用,java,spring,maven,spring-mvc,spring-boot,Java,Spring,Maven,Spring Mvc,Spring Boot,我正在尝试运行一个spring boot项目。当我选择1.5.2版时,RequestMappingURL不起作用。它总是给我404错误 有人可以确认我是否有任何标签丢失或版本中的任何设置更改。或者其他我错过的东西 POM.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/X
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.prizy</groupId>
<artifactId>ProductApi</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>ProductApi</name>
<description>Project for Product Managment</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
注意:问题更新了更多信息。检查web.xml文件是否在src>main>webapp>web-INF>web.xml中可用。如果不可用,请输入此文件并使用以下代码
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:ApplicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
<filter>
<filter-name>encoding-filter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding-filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
myServlet
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
类路径:ApplicationContext.xml
1.
myServlet
/原料药/*
编码过滤器
org.springframework.web.filter.CharacterEncodingFilter
编码
UTF-8
强制编码
符合事实的
编码过滤器
/*
/index.jsp
在尝试了所有场景之后,我终于将Spring引导版本更改为1.3.2.0版本
这样做后,它的工作很好。
我仍在试图找到为什么它不能在1.5.2版本上运行的答案
但为了解决这个错误,我对POM.xml文件做了如下更改
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
org.springframework.boot
spring启动程序父级
1.3.2.1发布
更改后,我也可以在日志中看到请求映射URL:
2017-04-19 11:10:49.785 INFO 4236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/hello]}" onto public java.lang.String com.epic.controllers.TestController.sayHello()
2017-04-19 11:10:49.786 INFO 4236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/helloss]}" onto public java.lang.String com.epic.TestControllerTest.sayHello()
2017-04-19 11:10:49.789 INFO 4236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2
2017-04-19 11:10:49.785信息4236---[main]s.w.s.m.a.RequestMappingHandlerMapping:mapping“{[/hello]}”映射到公共java.lang.String.com.epic.controllers.TestController.sayHello()
2017-04-19 11:10:49.786 INFO 4236---[main]s.w.s.m.m.a.RequestMappingHandlerMapping:将“{[/helloss]}”映射到公共java.lang.String.com.epic.TestControllerTest.sayHello()
2017-04-19 11:10:49.789 INFO 4236-[main]s.w.s.m.m.a.RequestMappingHandlerMapping:将“{[/error]}”映射到public org.springframework.http.ResponseEntity org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2.
请注意,同时我更改了映射url的名称,因此可能与问题不同。您尝试访问的url是什么?
package com.prizy.controller
:您的主类在哪里?您可以将主类与包名一起发布吗?此类中的其他方法是否有效?有没有可能不应该使用get…
方法名?您是否尝试过将方法的名称或目标/hi
更改为其他方法?他使用的是Spring Boot,它没有web.xml
。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
2017-04-19 11:10:49.785 INFO 4236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/hello]}" onto public java.lang.String com.epic.controllers.TestController.sayHello()
2017-04-19 11:10:49.786 INFO 4236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/helloss]}" onto public java.lang.String com.epic.TestControllerTest.sayHello()
2017-04-19 11:10:49.789 INFO 4236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2