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

Spring boot rest模板-HttpMessageConverter无法转换对象

堵琨
2023-03-14

大家好,我有一个问题,我不明白为什么会发生这种情况。我正在使用spring boot,并使用Kubernetes进行部署。过了一段时间,restTemplate停止工作,我不知道原因是什么。这就是我创建restTemplate类的方式

    @Bean
    public RestTemplate vanillaRestTemplate() {
        RestTemplate restTemplate = new RestTemplate();
        restTemplate.setErrorHandler(new RestTemplateErrorHandler());
        restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory());
        return restTemplate;
    }

过了一会儿,我的一些使用restTemplate的API返回如下错误:

{
"status": 500,
"body": "{ message: Could not extract response: no suitable HttpMessageConverter found for response type [interface java.util.List] and content type [application/json;charset=UTF-8] , cause: null }",
}

这只是一个例子。当这种情况发生时,resttemplate会遇到许多类的问题,如Map、String等。这就是我发送请求的方式:

ResponseEntity<List> adsRes = restTemplate.getForEntity(url, List.class);

奇怪的是,当我在服务器上重新启动应用程序时,一切都重新开始工作,API根本没有问题。即使是返回错误的。我已经阅读了这个问题,但是,正如你所看到的,我没有设置任何拦截器或类似的东西来重新设置模板,提前谢谢

共有1个答案

梁晋鹏
2023-03-14

尝试用以下代码替换调用endpoint的方式

ResponseEntity<YourObject[]> response = restTemplate.getForEntity("urlService",
  YourObject[].class);

YourObject[] yourObjects= response.getBody();
List<YourObject> list = Arrays.asList(yourObjects);
 类似资料:
  • Spring rest模板向我提供了以下Exception 这里是我的json响应 我怀疑事情是在转换器里。我更改了转换器配置,但这不起作用

  • 我希望输出日志消息的方式与使用bash“logger”命令的方式完全相同,但在Java中使用Log4j: 在尝试了许多不同的模式后,我无法再现相同的输出。知道怎么写这个图案吗? 谢谢你,

  • 我有一个用例,其中输入数据是xml格式的。它包含多个字段,而我们只感兴趣阅读很少的字段。 根据不同的用例,必须编写单独的velocity模板来将xml转换为json数据。 关于如何编写velocity模板以将XML转换为JSON,我找不到更好的指南。有人能帮助我们如何编写从XML到JSON转换的velocity吗? 提前感谢!

  • 我为jsf创建了一个自定义转换器。getAsObject()工作正常,但getAsString()返回异常。我不确定问题出在哪里,我尝试过用不同的方式将对象转换为字符串,但它不断返回异常。 这是我的代码: 这是Product类(为简单起见排除了getter/Setters/equals()/hash()): 这是stack我得到的: 这是我使用转换器的jsf:

  • 问题内容: 我有JSON文件,看起来像 因此,键是字符串“ SUBS_ID”,值是一个名为FeatureDetails的模型,其中包含属性“ featureSetName,featureName,…”。所以我像这样使用google.json lib从JSON文件中读取内容, 然后我试图遍历此HashMap以获取值并将其转换为我的FeatureDetails模型, 这是我的FeatureDetail

  • 问题内容: 我正在尝试从Python调用带有数组参数的C函数的测试项目: test.cpp : caller.pyx : setup.caller.py : 但是,当我尝试构建项目时,出现错误: 问题答案: 这个问题经常出现,但是我找不到一个很好的重复目标,这超出了“只要这样做就行”的范围。 这是一种非常常见的情况:您尝试将一些python数据结构传递给需要指针的c代码。但是,指针不是python