首页
学习
活动
专区
工具
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注册为容器中的组件是没有

90430

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

    56720

    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,反正就是直接报错….

    93320

    如何使用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

    2.1K30

    掌握 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.7K20

    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

    91620

    Spring注解篇:@PutMapping详解

    前言RESTful API设计中,HTTP PUT方法通常用于更新资源。Spring框架中,@PutMapping注解提供了一种简便的方式来处理这类请求。...测试用例实际开发中,可以通过以下方式测试这段代码:启动应用程序:运行main方法,启动Spring Boot应用程序。...此外,我们也讨论了使用@PutMapping的一些潜在缺点,包括它的使用限制PUT请求上,以及大型应用中可能需要更多的错误处理和请求验证机制。这些考量对于设计一个健壯的Web服务来说是至关重要的。...然而,开发者使用时应当注意其使用场景,并结合适当的错误处理和数据验证策略,以确保应用程序的稳定性和安全性。...通过不断学习和实践,我们可以更好地利用Spring MVC的强大功能,构建出更加健壮和用户友好的Web应用程序

    47831

    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

    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、请求参数是否正确?

    41560

    T系列项目讲解笔记3:后端API接口返回包装类

    一、前后端数据交互机制 Vue.js和Spring Boot作为现代Web开发中流行的前后端技术,它们之间的数据交互机制主要基于RESTful API。...Spring Boot后端使用Spring MVC框架处理这些请求,并将数据以JSON或XML格式返回给前端。Vue.js接收到响应后,使用响应数据更新其组件状态,从而实现数据的双向绑定和动态更新。...405 Method Not Allowed:请求方法不被允许。 408 Request Timeout:服务器等待请求时超时。 409 Conflict:请求与服务器上的资源冲突。...Java后端开发中,可以使用Spring框架的RestTemplate或WebClient等工具来发送HTTP请求,并处理这些状态码。...return R.ok("查询竞赛信息成功").put("data", jingsaixinxiView); } 四、返回数据体 data 是返回的数据体,JSON格式,根据不同的业务有不同的JSON体

    10910

    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

    64120

    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.3K40

    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.2K20

    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

    31610

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

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

    9110
    领券