当前位置: 首页 > 知识库问答 >
问题:

Spring MVC-带有特定url参数的错误代码406

单耘豪
2023-03-14
@RequestMapping(value="/roomId/{roomId}",produces = "application/json")
public List<DayStatisticDto> findBySiteAndRoom(@PathVariable("roomId") String roomId, @RequestParam("timestamp") String timestamp, @RequestParam("pageSize") Integer pageSize) throws ParseException {
    List<DayStatisticDto> dayStatisticDtos = dayStatisticService.latestDailyStatisticsForRoom(getCurrentUserSiteCode(), roomId, pageSize, timestamp, false);
    return dayStatisticDtos;
}

http://localhost:8080/api/activities/roomid/i1.a.122?timestamp=2016-11-11t12:02:34.421+0100&pagesize=10

使用此请求参数:

  • 接受:application/json
  • 接受编码:gzip、deflate、sdch、br
  • 接受语言:fr-fr,fr;q=0.8,en-us;q=0.6,en;q=0.4
  • 缓存-控制:无缓存
  • cookie:_ga=ga1.1.486025197.1475764350;jsessionid=6716a5824088bc0f46a6b74d5fb25a3e
  • 主机:localhost:8080
  • 用户代理:Mozilla/5.0(Macintosh;Intel Mac OS X 10_11_6)AppleWebkit/537.36(KHTML,like Gecko)Chrome/54.0.2840.71 Safari/537.36

我得到一个正确的JSON对象作为响应。

但当我将参数“roomid”从i1.a.122更改为i1.a.123时:

http://localhost:8080/api/activities/roomid/i1.a.123?timestamp=2016-11-11t12:02:34.421+0100&pagesize=10

    null

我收到错误代码406-不可接受

我在项目中到处使用这种请求,但我从未遇到过这种问题。参数“roomid”仍然是一个正常的整数值。它如何用Spring Mvc产生问题?头和运行的代码仍然完全相同。

当我在“findBySiteAndRoom”方法的第一行放置断点时,在第一种情况下,它到达了点。但在第二种情况下,它返回到达断点之前的406错误代码。

共有1个答案

刁茂才
2023-03-14

我找到了一种方法。我创建了一个扩展WebMvcConfigurerAdapter的Spring配置,并重写了“ConfigureContentNegotiation”方法,如下所示:

@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
    configurer.favorPathExtension(false);
}

有了这个参数,它工作得很完美。

但我还是不明白,有什么可以解释的房间ID为i1.a.122时,它可以工作,而房间ID为i1.a.123时,它就不工作了。

 类似资料:
  • URL返回以下错误,但其他URL返回预期的HTML正文,例如我不知道是什么引起了这个问题。

  • 本文向大家介绍SpringMVC的@InitBinder参数转换代码实例,包括了SpringMVC的@InitBinder参数转换代码实例的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了SpringMVC的@InitBinder参数转换代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 以上就是本文的全部内容,希望对大家的学习有所

  • 我刚刚开始创建我的第一个OpenAPI定义(2.0版),我一直被这个错误所困扰: 无效的OpenAPI文件。请修复模式错误:\n\"/参数/分类Param\":域:验证;关键字:oneOf;消息:实例与一个模式不完全匹配;匹配:0" 它只是一个类似于“/cat/count”的查询,它将返回一个整数,即有多少猫-“cat”是所需的路径参数。我的参数定义到底有什么问题?

  • 环境 LDAP服务器:交钥匙OpenLDAP spring-ldap-core版本:2.3.3.发布 活动是什么 null 异常中找不到注释和数据等信息

  • 我正在使用类集合,并有一行代码,如下所示。请找到完整的代码如下所示,让我知道什么是错误的代码,因为我得到的错误: JAVAlang.IllegalArgumentException:参数数量错误

  • 问题内容: 我试图按照此链接中的建议将错误返回到对控制器的调用,以便客户端可以采取适当的措施。javascript通过jqueryAJAX调用控制器。仅在不将状态设置为error的情况下,我才可以重新获得Json对象。这是示例代码 如果没有设置状态码,我会得到Json。如果设置状态代码,则会返回状态代码,但不会返回Json错误对象。 更新 我想将Error对象作为JSON发送,以便可以处理ajax