首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring Web应用程序在PUT调用时返回405错误

是因为PUT方法在默认情况下是被禁用的。PUT方法用于更新资源,但是Spring MVC默认只允许使用GET和POST方法。要解决这个问题,可以通过以下几种方式:

  1. 使用@PutMapping注解:在Controller的处理方法上使用@PutMapping注解,指定对应的URL路径。示例代码如下:
代码语言:txt
复制
@PutMapping("/resource/{id}")
public ResponseEntity<?> updateResource(@PathVariable("id") Long id, @RequestBody Resource resource) {
    // 更新资源的逻辑
    return ResponseEntity.ok().build();
}

推荐的腾讯云相关产品:云服务器CVM、负载均衡CLB、云数据库MySQL、对象存储COS等。详细产品介绍请参考腾讯云官方文档:腾讯云产品

  1. 配置HttpMethod:在Spring的配置文件(如application.properties或application.yml)中添加以下配置,启用PUT方法:
代码语言:txt
复制
spring.mvc.hiddenmethod.filter.enabled=true

推荐的腾讯云相关产品:云服务器CVM、负载均衡CLB、云数据库MySQL、对象存储COS等。详细产品介绍请参考腾讯云官方文档:腾讯云产品

  1. 自定义Filter:创建一个自定义的Filter,用于处理PUT请求。示例代码如下:
代码语言:txt
复制
@Component
public class HttpPutFilter extends OncePerRequestFilter {
    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
        if (request.getMethod().equalsIgnoreCase(HttpMethod.PUT.name())) {
            HttpServletRequestWrapper requestWrapper = new HttpServletRequestWrapper(request) {
                @Override
                public String getMethod() {
                    return HttpMethod.POST.name();
                }
            };
            filterChain.doFilter(requestWrapper, response);
        } else {
            filterChain.doFilter(request, response);
        }
    }
}

然后在Spring的配置文件中注册该Filter:

代码语言:txt
复制
@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Autowired
    private HttpPutFilter httpPutFilter;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(httpPutFilter);
    }
}

推荐的腾讯云相关产品:云服务器CVM、负载均衡CLB、云数据库MySQL、对象存储COS等。详细产品介绍请参考腾讯云官方文档:腾讯云产品

总结:Spring Web应用程序在PUT调用时返回405错误可以通过使用@PutMapping注解、配置HttpMethod或自定义Filter来解决。腾讯云提供了丰富的云计算产品,如云服务器CVM、负载均衡CLB、云数据库MySQL、对象存储COS等,可根据具体需求选择相应的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Spring 全家桶之 Spring Boot 2.6.4(七)- Exception

一、Spring Boot 默认错误处理机制 创建工程 使用IDEA创建一个工程spring-boot-exception,只需要添加基本的依赖即可 Spring Boot 默认错误处理 Web端请求...Spring Boot服务出现错误时,Spring Boot默认会返回一个空白的错误页面 在其他客户端请求发生错误时会返回JSON格式的错误数据 这些都是Spring Boot的自动配置类ErrorMvcAutoConfiguration...格式的返回 二、Spring Boot 自定义错误页面 BasicErrorController类中的errorHtml()方法中返回一个ModelAndView,也就是发生错误时We端显示的错误页面...类的errorHtml()方法,最终返回Web页面 自定义错误页面 根据上面的分析,想要自定义错误页面可以templates文件夹下创建error文件夹,并且新增页面4xx.html <!...,Web浏览器可以返回自定义的错误页面 客户端返回,可以返回JSON数据 但是客户端返回的JSON格式没有返回自定义的Key BasicErrorController注册为容器中的组件是没有

86930

Spring认证中国教育管理中心-Spring Data REST框架教程二

所有其他 HTTP 方法都会导致405 Method Not Allowed. GET 通过其findAll(…)方法返回存储库服务器的所有实体。...支持的媒体类型 该POST方法支持以下媒体类型: 应用程序/hal+json 应用程序/json 4.3.物品资源 Spring Data REST 将单个集合项的资源公开为集合资源的子资源。...PUTPUT方法用提供的请求正文替换目标资源的状态。默认情况下,响应是否包含正文由Accept随请求发送的标头控制。如果请求标头存在,200 OK则返回响应正文和状态代码。...支持的媒体类型 该PUT方法支持以下媒体类型: 应用程序/hal+json 应用程序/json PATCH 该PATCH方法与方法类似,PUT但部分更新资源状态。...支持的媒体类型 该GET方法支持以下媒体类型: 应用程序/hal+json 应用程序/json PUTPUT方法将给定 URI 指向的资源绑定到关联资源(请参阅支持的媒体类型)。

1.8K10

Spring MVC 框架学习(四)----连接程序

错误的方案 注解加属性解决 (4)@RequestMapping 接收的是GET 还是 POST ?...的容器中管理 2、实现客户与程序的互联互通 (1)@RequestMapper @RequestMapping 是 Spring Web应用程序中最常用到的注解之一,是用来注册接口的路由映射的。...默认情况下 @RequestMapping 返回的是页面 (3)不同的访问目录 方法上面加上映射@RequestMapping,访问时一级目录访问 package com.bit.controller...(前后端分离,后端只返回数据) 解决控制器返回中文数据乱码的情况 错误的方案 Controller中修改响应头Content-Type的值为"text/html;charset=utf-8" 修改之后...name; } 发送post请求之后访问失败 3、@RequestMapping 和 @GetMapping 的区别 @RequestMapping 支持任意一种类型请求(GET、POST、PUT

50720

Http 405_android与服务器交互

因为现在都用的spring配置的,很少用到servlet了,今天想写一个demo,结果报了一个405错误…………………真的是打扰了……. 405概念 请求行中指定的请求方法不能被用于请求相应的资源...该响应必须返回一个Allow 头信息用以表示出当前资源能够接受的请求方法的列表。   ...鉴于 PUT,DELETE 方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者默认配置下不允许上述请求方法,对于此类请求均会返回405错误。...其实就是说你访问了不是你能访问了,例如你使用post方法访问静态资源,Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求 那么我的这个问题是在哪里呢?..., msg); } else { resp.sendError(400, msg); } } 你看,这里,只要http 协议是1.1就返回405,不然就返回400,反正就是直接报错….

91420

如何使用Spring和Java配置构建一个REST API

控制器 @Controller是RESTful API整个Web层的中心组件。...未映射的请求 如果Spring MVC接收到没有映射的请求,则认为不允许该请求,并将405 METHOD NOT ALLOWED返回给客户端。...向客户端返回405时,最好包括Allow HTTP头,以指定允许哪些操作。这是Spring MVC的标准行为,不需要任何额外的配置。 6.2....客户端错误 客户端错误的情况下,自定义异常被定义并映射到适当的错误代码。 简单地从Web层的任何位置抛出这些异常,将确保Spring将相应的状态代码映射到HTTP响应上。...附加的Maven依赖项 除了标准的web应用程序所需的spring-web-mvc依赖之外,我们还需要为REST API配置内容编排和反编排: <dependency

2K30

掌握 Spring 之异常处理

前言 这次我们学习 Spring 的异常处理,作为一个 Spring 为基础框架的 Web 程序,如果不对程序中出现的异常进行适当的处理比如异常信息友好化,记录异常日志等等,直接将异常信息返回给客户端展示给用户...如果不是 IllegalArgumentException异常,返回 null 表示让其他异常处理器进行处理,这里由于异常处理链机制,如果不处理异常,就会由 Web 容器将异常返回给客户端。...ResponseEntityExceptionHandler 扩展 ResponseEntityExceptionHandler 类是主要针对 Spring MVC 所抛出异常的处理类,比如 405 请求...比如下面代码实现对 405 请求异常的响应处理。...Spring Web MVC Exceptions : https://docs.spring.io/spring/docs/5.1.6.RELEASE/spring-framework-reference

1.6K20

2022就业季|Spring认证教你,如何使用 Spring 构建 REST 服务(五)

前两个 Spring MVC 路由处理聚合根以及单个项目Order资源请求。第三条 Spring MVC 路由通过IN_PROGRESS状态中启动它们来处理创建新订单。...所有控制器方法都返回 Spring HATEOAS 的RepresentationModel子类之一以正确呈现超媒体(或围绕此类类型的包装器)。...如果它不是一个有效的状态,它会返回一个RFC-7807 Problem,一个支持超媒体的错误容器。如果转换确实有效,则将 转换Order为CANCELLED。...1) 端口 8080 (#0)> PUT /orders/4/完成 HTTP/1.1> 主机:本地主机:8080> 用户代理:curl/7.54.0> 接受:*/*>< HTTP/1.1 405< 内容类型...应用程序,每个资源的 HAL 表示进化- REST 应用程序,其中一个字段已进化但保留旧数据以实现向后兼容性链接- REST 应用程序,其中条件链接用于向客户端发出有效状态更改信号要查看使用 Spring

88820

matinal:http post集成报错Request method ‘POST‘ not supported,对方系统说:告诉你们用POST,你们还用GET,这TM和GET有关系吗,NMD

下面进行异常场景还原(后端环境:Spring MVC4.0.5): 1、前端访问我这边的接口抛出错误码:405 Method not allowed 。...4、拓展 虽然问题解决了,但是为啥Spring MVC 为啥抛出那样的日志,而不是具体的错误信息呢?如果是具体的错误信息那不简单明了嘛,也不至于花了这么时间去定位问题所在。...继续进入handleHttpMessageNotReadable方法,看到这里就知道结果了,它把原来的错误信息给修改并返回了。...另外这里不是真的返回信息,上面错误信息返回之后还会再次进入DispatcherServlet类重新又走了一遍,所以错误信息又重新判断一次最终进入了下面这个方法,真正的输入日志的地方在这: 所以这个是Spring...总结 针对这种405错误,总结一下几点: 1、首先第一个需要确认请求方法类型是否一致? 2、请求数据类型 和 接收的数据类型是否一致? 3、请求参数是否正确?

33960

Spring Boot 中关于自定义异常处理的套路!

4-12-1.jpg Spring Boot 项目中 ,异常统一处理,可以使用 Spring 中 @ControllerAdvice 来统一处理,也可以自己来定义异常处理方案。...路径 ,这个页面就不会展示出来,不过 Spring Boot 中,提供 /error 路径实际上是下下策,Spring Boot 本身在处理异常时,也是当所有条件都不满足时,才会去找 /error...那么我们就先来看看, Spring Boot 中,如何自定义 error 页面,整体上来说,可以分为两种,一种是静态页面,另一种是动态页面。...自定义异常数据 默认情况下,Spring Boot 中,所有的异常数据其实就是上文所展示出来的5条数据,这5条数据定义 org.springframework.boot.web.reactive.error.DefaultErrorAttributes...类的 errorHtml 方法中,这个方法用来返回异常页面+数据,还有另外一个 error 方法,这个方法用来返回异常数据(如果是 ajax 请求,则该方法会被触发)。

1K00

Spring使用@ControllerAdvice注解优雅地处理异常信息

@ControllerAdvice,是Spring3.2+提供的新注解,它是一个Controller增强器,可对Controller中被 @RequestMapping注解的方法加一些逻辑处理。...当将异常抛到Controller时,可以对异常进行统一处理,规定返回的json格式或是跳转到一个错误页面。...ExceptionEnum.HTTP_NOT_FOUND.getMessage()); 68        return mv; 69    } 70 71    /** 72     * 405...; 9    } 10} 访问testException接口,可得到以下结果: 如果需要返回json数据,而要渲染某个页面模板返回给浏览器,那么可以这么实现: 1@ResponseBody 2@...("code", "40001"); 6    //判断异常的类型,返回不一样的返回值 7    if(ex instanceof TemplateNotFoundException){ 8

34220

Spring Boot 中关于自定义异常处理的套路!

Spring Boot 项目中 ,异常统一处理,可以使用 Spring 中 @ControllerAdvice 来统一处理,也可以自己来定义异常处理方案。...那么我们就先来看看, Spring Boot 中,如何自定义 error 页面,整体上来说,可以分为两种,一种是静态页面,另一种是动态页面。...静态异常页面 自定义静态异常页面,又分为两种,第一种 是使用 HTTP 响应码来命名页面,例如 404.html、405.html、500.html .......自定义异常数据 默认情况下,Spring Boot 中,所有的异常数据其实就是上文所展示出来的5条数据,这5条数据定义 org.springframework.boot.web.reactive.error.DefaultErrorAttributes...类的 errorHtml 方法中,这个方法用来返回异常页面+数据,还有另外一个 error 方法,这个方法用来返回异常数据(如果是 ajax 请求,则该方法会被触发)。

1.1K20

Spring Boot 中关于自定义异常处理的套路!

Spring Boot 项目中 ,异常统一处理,可以使用 Spring 中 @ControllerAdvice 来统一处理,也可以自己来定义异常处理方案。...那么我们就先来看看, Spring Boot 中,如何自定义 error 页面,整体上来说,可以分为两种,一种是静态页面,另一种是动态页面。...静态异常页面 自定义静态异常页面,又分为两种,第一种 是使用 HTTP 响应码来命名页面,例如 404.html、405.html、500.html .......自定义异常数据 默认情况下,Spring Boot 中,所有的异常数据其实就是上文所展示出来的5条数据,这5条数据定义 org.springframework.boot.web.reactive.error.DefaultErrorAttributes...类的 errorHtml 方法中,这个方法用来返回异常页面+数据,还有另外一个 error 方法,这个方法用来返回异常数据(如果是 ajax 请求,则该方法会被触发)。

1.2K40

SpringMVC的架构有什么优势?——异常处理与文件上传(五)

——异常处理与文件上传(五) 异常处理 异常处理是任何应用程序必不可少的组件。Spring MVC提供了一种方便的机制来捕获和处理异常,并返回友好的错误信息。 异常处理是任何应用程序必不可少的组件。...Web应用程序中,当遇到异常时,通常会返回HTTP错误码和对应的错误信息,这对于终端用户来说并不友好。Spring MVC提供了一种方便的机制来捕获和处理异常,并返回友好的错误信息。...处理过程中,我们创建了一个ApiError对象,并将其作为ResponseEntity的返回值。这样可以返回HTTP错误码和对应的错误信息。...只有深入理解异常处理的概念,并熟练掌握相应的Java代码技巧,才能够实际开发中灵活运用Spring MVC框架,构建高效、可靠、易于维护的Web应用程序。...只有深入理解文件上传的概念,并熟练掌握相应的Java代码技巧,才能够实际开发中灵活运用Spring MVC框架,构建高效、可靠、易于维护的Web应用程序

200

SpringMVC | RestFul和控制器

Spring MVC中一个控制器类可以包含多个方法 Spring MVC中,对于Controller的配置方式有很多种 1.1、方法一:实现Controller接口 Controller是一个接口,...org.springframework.web.servlet.mvc包下,接口中只有一个方法; //实现该接口的类获得控制器功能 public interface Controller { /...类的实例是一个控制器(讲IOC时还提到了另外3个注解); Spring可以使用扫描机制来找到应用程序中所有基于注解的控制器类,为了保证Spring能找到你的控制器,需要在配置文件中声明组件扫描。...{ } Spring MVC中可以使用 @PathVariable 注解,让方法参数的值对应绑定到一个URI模板变量上。...; return "test"; } 小结: Spring MVC 的 @RequestMapping 注解能够处理 HTTP 请求的方法, 比如 GET, PUT, POST, DELETE

29910

Spring Boot2 系列教程(十三)Spring Boot 中的全局异常处理

Spring Boot 项目中 ,异常统一处理,可以使用 Spring 中 @ControllerAdvice 来统一处理,也可以自己来定义异常处理方案。...静态异常页面 自定义静态异常页面,又分为两种,第一种 是使用 HTTP 响应码来命名页面,例如 404.html、405.html、500.html .......自定义异常数据 默认情况下, Spring Boot 中,所有的异常数据其实就是上文所展示出来的 5 条数据,这 5 条数据定义 org.springframework.boot.web.reactive.error.DefaultErrorAttributes...自定义异常视图 异常视图默认就是前面所说的静态或者动态页面,这个也是可以自定义的,首先 ,默认的异常视图加载逻辑 org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController...类的 errorHtml 方法中,这个方法用来返回异常页面+数据,还有另外一个 error 方法,这个方法用来返回异常数据(如果是 ajax 请求,则该方法会被触发)。

89910

SpringMVC框架基础知识(4)

login.do user/ /login.do /user/ login.do /user/ /login.do 所以,实际应用时,一般推荐使用以上表格中的第1种做法,或第4种做法,也就是“要么注解参数的左侧都不添加..., OPTIONS, PUT, PATCH, DELETE, TRACE...错误错误提示信息为: HTTP Status 405 – Method Not Allowed Message : Request method 'GET' not supported SpringMVC...,控制器类必须添加@Controller注解,处理请求的方法之前需要添加@RequestMapping或对应更高级的注解来配置请求路径,方法应该是public权限的,返回值暂时是String类型表示“视图名称...”,方法名称可以自定义,方法的参数列表可以按需设计; 【掌握】当结合使用Thymeleaf时,需要先添加thymeleaf、thymeleaf-spring4或thymeleaf-spring5依赖,并在

24820
领券