org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' not supported

1:先上控制台报错信息

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

org.springframework.web.HttpRequestMethodNotSupportedException: Request method ‘PUT‘ not supported

    at org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.handleNoMatch(RequestMappingInfoHandlerMapping.java:203)

    at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod(AbstractHandlerMethodMapping.java:352)

    at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:299)

    at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:57)

    at org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandler(AbstractHandlerMapping.java:299)

    at org.springframework.web.servlet.DispatcherServlet.getHandler(DispatcherServlet.java:1104)

    at org.springframework.test.web.servlet.TestDispatcherServlet.getHandler(TestDispatcherServlet.java:90)

    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:916)

    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)

    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)

    at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:879)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)

    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)

    at org.springframework.test.web.servlet.TestDispatcherServlet.service(TestDispatcherServlet.java:65)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)

    at org.springframework.mock.web.MockFilterChain$ServletFilterProxy.doFilter(MockFilterChain.java:167)

    at org.springframework.mock.web.MockFilterChain.doFilter(MockFilterChain.java:134)

    at org.springframework.test.web.servlet.MockMvc.perform(MockMvc.java:144)

    at main.test.PerformanceTestBase.testPut(PerformanceTestBase.java:46)

    at main.test.PerformanceTest.junitTestUpdRentByQian(PerformanceTest.java:1917)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:606)

    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)

    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)

    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)

    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)

    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)

    at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:73)

    at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82)

    at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:73)

    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)

    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:217)

    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:83)

    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)

    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)

    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)

    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)

    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)

    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)

    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:68)

    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)

    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:163)

    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)

    at org.junit.runner.JUnitCore.run(JUnitCore.java:115)

    at main.test.TestRunnable.run(PerformanceTest.java:2129)

    at java.lang.Thread.run(Thread.java:744)

2:分析错误原因

以前分析过一些异常相关的问题,自从进入新公司之后,也做了若干个项目,其中也遇到了许多的问题,不过每一个新的问题都记录下来自己的分析、解决之道的习惯没有保持下来,主要事情比较多,上班和住的地方相对比较远,每天早出晚归,精力时间有限。哈哈,不过这个问题遇到几次了,前几天同事又遇到了,让我萌生了继续记录下来的想法。

还是老办法,遇到程序报错,先从头到尾将报错信息过一遍,分析、解决的思路无怪乎下面几种:

1:如果是以前遇到过并且分析解决过的,那么问题就迎刃而解了——这就是积累的重要性的体现了

2:如果从来没遇到过,先将报错信息从头到尾扫一下,自己编写的代码出错的概率是个大概率事件,找找报错信息中自己项目中报错的代码是那一句,结合报错信息和自己的代码,大部分的错误都能找到根源,并且通过自己的分析都能解决掉,现在这个错误就是这样的。

   有用的报错信息是:org.springframework.web.HttpRequestMethodNotSupportedException: Request method ‘PUT‘ not supported   我的代码中相关的代码是:@RequestMapping(value="/BG/Rent/{id}",method={RequestMethod.POST}))   请求的方法有:

?


1

2

3

4

5

package org.springframework.web.bind.annotation;

public enum RequestMethod {

    GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS, TRACE;

}

   问题很明显了,下面就是看看该修改那里的问题了——我这里是通过多线程+单元测试的方式模拟简单的压力测试情景,看一下自己单元测试中的情况,发现对应的方法调错了,ok,发现问题基本上算是解决了问题。修改一下就好了,然后测试一下。

3:如果自己从来没遇到过,通过步骤2也不能将问题解决,就需要自己利用搜索引擎的力量了,基本上到这里又能解决大部分的问题了

3:题外话

目前的项目采用的是AngularJs+Bootstrap+SpringMVC+SpringBoot+JPA的技术手段来实施的,并且前后端的开发是分开的,通过使用AngularJs发送异步请求的方式常常会出现这个问题,因为同一个URL通过配置不同的方法的方式来对应应用中的增删改查的方法(增——PUT,删——DELETE,改——POST,查——POST/GET分别对应列表查询和单个的信息查询)。

4:查看对应的报错异常类的相关信息,有时也能帮助我们更快更好更全面的了解此异常触发的时机,比如:

org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' not supported

原文地址:https://www.cnblogs.com/jpfss/p/8467166.html

时间: 2024-10-28 16:42:58

org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' not supported的相关文章

【Feign调用异常】org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported

一.异常场景描述 明明是post请求,为啥到达服务器后就变成了get请求 2019-05-30 18:07:17.055 [http-nio-10650-exec-4] ERROR c.x.xcauto.common.controller.BaseControllerAdvice - 检测到未捕捉异常:IP:192.168.128.1 invoke url:http://172.17.244.170:10650/stock/valid/num/v1 Exception:public class

解决JBoss7部署应用时Not installing optional component org.springframework.web.context.request.async.StandardServletAsyncWebRequest的错误

最近用JBoss部署WEB应用时报出了一个警告错误 15:50:06,865 WARN [org.jboss.as.ee] (MSC service thread 1-13) JBAS011006: Not installing optional component org.springframework.web.context.request.async.StandardServletAsyncWebRequest due to exception: org.jboss.as.server.d

SSM报错:No converter found for return value of type: class java.util.ArrayList at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverter

我使用的是SSM框架,是在编写测试RESTFUL接口的时候出现, @RequestMapping(value = "/selectAll", method = RequestMethod.GET) @ResponseBody public ResponseEntity<List<User>> selectAll() { List<User> users = this.userService.selectAll(); if (null != users

org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping

配置spring+shiro时,启动tomcat报错异常 严重: Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping': Invocation of i

Feign发送Get请求时,采用POJO对象传递参数的最终解决方案 Request method &#39;POST&#39; not supported (附带其余好几个坑)

yml: feign: httpclient: enabled: true properties: #feign feign.httpclient.enabled=true <!-- https://mvnrepository.com/artifact/io.github.openfeign/feign-httpclient --> <dependency> <groupId>io.github.openfeign</groupId> <artifac

SpringMVC框架出现 405 request method post not supported 的解决方法

在SpringMVC框架中当使用post请求服务,然后请求成功转到一个静态文件,如html,htm等网页时.页面出现405 request method post not supported错误,只要在spring的配置文件中加入下面代码即可: <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="urlMap"&

HTTP Status 405 - Request method &#39;GET&#39; not supported

springMVC框架中出现这个问题看看web.xml是否配置HiddenHttpMethodFilter ctrl +shift+T查看这个方法 配置: <!-- 配置org.springframework.web.filter.HiddenHttpMethodFilter:可以把post请求转为delete或putt请求 -->   <filter>     <filter-name>HiddenHttpMethodFilter</filter-name>

spring rest项目提示Request method &#39;PUT&#39; not supported Method Not Allowed 405 错误

{ "timestamp": "2019-04-28 17:43:07", "status": 405, "error": "Method Not Allowed", "message": "Request method 'PUT' not supported", "path": "/customer" } 今天项目发布后,发现

springmvc表单提交出现WARNING: Request method &#39;GET&#39; not supported

明明表单提交的method设置为post,然后在controller那设置只能请求为post请求 然后第一次post请求是正常的,第二次开始后便不正常了,出现post的请求302,get请求405:这个结果很纳闷吧 <!--注意action的路径--> <form id="form1" action="upload" method="post" enctype="multipart/form-data">