问题标签 [http-message-converter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - 如果 canRead 和 canWrite 为 false,则跳过 HttpMessageConverter
我有一个自定义MappingJackson2HttpMessageConverter
添加到转换器列表的顶部:
但是,有时我需要跳过这一点并使用 Spring default MappingJackson2HttpMessageConverter
,例如当我想通过 Spring Boot Admin 更新应用程序的日志记录级别时。在我的自定义转换器中,我已经覆盖了两者canRead()
并canWrite()
添加了调试日志行以查看返回的值是什么,并且false
当我需要跳过时,我可以看到它们都返回。但是,使用默认值解析失败。如果我从列表中删除我的自定义转换器,那么默认值确实有效。
我的转换器列表如下所示:
我不明白为什么如果我的自定义转换器返回false
and canRead()
,canWrite()
它不只是跳过这个并继续向下转换器列表,直到它到达默认的 Spring JSON 转换器。
json - Spring Boot http消息转换器有时会序列化null
在 Spring Boot 中,是否可以有许多不同版本的 gson 或 Jackson http 转换器,并在我需要特定类型的数据格式时动态使用它们?
rest - 使用 RestTemplate 中的交换方法时,如何解决 HttpMessageConverterExtractor 错误?
我正在使用 Spring REST 模板从 REST 服务获取响应。我收到以下异常,但我无法找出问题所在。请找到以下详细信息。我错过了什么吗?
当我使用 Postman 尝试此操作时,我得到了正确的响应。
这里 AddFileServerBean 是请求:
例外
HttpMessageConverterExtractor 的源代码
我预期的响应对象
java - org.springframework.web.client.RestClientException 中的错误:java.util.HashMap 没有 HttpMessageConverter
我在 org.springframework.web.client.RestClientException 中收到以下错误:使用 rest 模板时 java.util.HashMap 没有 HttpMessageConverter。有谁知道出了什么问题?
使用 java 1.8、spring 5.2.2、commons-logging 1.2。
错误
json - 如何解决 Spring Boot 中“提取类型 [class com.*] 的响应时出错”?
您可能想跳到下面的我的 UPDATE 2
我有一个可以工作的 RestController,因为当我直接从浏览器访问它时,它会返回一个 JSON 响应。但是,当我在不同的有界上下文中从服务发送请求时,我收到错误消息:
这是我的代码:
休息控制器
休息客户端
配置
工人详情
WorkerDetails 也存在于包 com.path.to.contextone.ohs_pl 中;
我已经尝试了3天,阅读和调试,无济于事。调试器似乎显示当 RestTemplate 分析 WorkerDetails.class 时发生错误。
我还尝试在所有配置类中使用 ComponentScan,因为文件位于单独的包(有界上下文)中,但没有成功。
我可以只使用调用 IAcessRestClient 的类中的 UserDetailsRepository 来获取 WorkerDetails,但这会使两个不同的有界上下文依赖于相同的数据库模式。
任何帮助将不胜感激。我可以根据请求发布附加代码。
提前致谢
更新 @SB 要求输入参数。这是发送参数的类:
公司ServiceImpl
这是我直接访问 RestController 时得到的响应:
更新 2
注释掉 .anyRequest().authenticated() 并且一切运行正常!因此,它一直与 Spring Security 有关。多可惜。现在将尝试在启用安全性的情况下使事情正常进行。由于重定向到登录页面,我收到了 HTML 作为响应。正确实施了身份验证(带有基本身份验证的令牌请求)并且一切正常。
谢谢你们!
java - 如何在 Spring Boot 中配置 gson?
Spring Boot 2
在 application.yml
现在我用自定义设置编写类Gson
:
我如何配置Spring Boot
我的自定义Gson
对象GsonUtil
?
spring-boot - Spring Boot / RabbitMQ 与 Jackson2JsonMessageConverter 不同的 content_type
我有一个服务使用不同的 RabbitMQ 队列的用例。
- 在其中一个队列上有 JSON 编码数据,其中 content_type 标头设置为
application/json
- 还有第二个队列,正在消费二进制数据,content_type 是
application/octet-stream
在配置中有一个 MessageConverter 定义:
消费方法是这样声明的:
我的问题是 Jackson2JsonMessageConverter 抱怨application/octet-stream
标头(
Could not convert incoming message with content-type application/octet-stream 'json' keyword missing.
),更糟糕的是,它正在将上述方法的 byte[] 响应编码为 JSON 和 base64。
问题:
如何确保 JSON 转换器不会触及我的 byte[] 响应并忽略具有“非 json”content_type 的消息?
spring-boot - 没有为响应类型 [class java.lang.Object] 和内容类型 [multipart/form-data;boundary=XXX;charset=UTF-8] 找到合适的 HttpMessageConverter
我正在从 UI 进行多部分表单数据发布调用以上传文件。从 UI,调用转到组件 A 控制器,您可以将其视为普通组件或总线,它只是读取流,通过 rest 调用将流传递到其他组件 B 控制器,该调用上传文件并在 json 中发送回有关上传文件的元数据格式。
问题:调用成功进行到组件 B 控制器,文件已上传,但是当组件 B 的响应到达组件 A 时,出现以下错误
“消息”:“无法提取响应:没有找到适合响应类型 [class java.lang.Object] 和内容类型 [multipart/form-data;boundary=HWhdmg6KNJw_kaP4wWnLyoAb9htc8StF4;charset=UTF-8] 的 HttpMessageConverter”
有人可以帮忙吗?
组件 A 代码
B组份代码
谢谢
spring-boot - 将 RestTemplate 与 StreamingResponseBody 一起使用时出现 MessageConverter 问题
我们有一个使用 Spring Boot 实现的 REST API(服务器端)。此 API 正在流式传输 PDF 文件StreamingResponseBody
,ResponseEntity
其内容类型为MediaType.APPLICATION_OCTET_STREAM
.
我正在尝试在RestTemplate
. 这个客户端应用程序又是一个 Spring Boot 应用程序。此客户端应用程序已存在,并且MappingJackson2HttpMessageConverter
到目前为止支持两种支持媒体类型。
application/json
和application/x-www-form-urlencoded
我遵循了一些建议并尝试了这些项目
- 添加
MediaType.APPLICATION_OCTET_STREAM
到现有的MappingJackson2HttpMessageConverter
- 添加
ByteArrayHttpMessageConverter
了默认支持MediaType.APPLICATION_OCTET_STREAM
- 添加
ResourceHttpMessageConverter
了哪些支持流式响应。
但是有了所有这些建议,我面临以下错误。目前,我不确定配置中是否缺少任何内容。团队,如果您可以将我重定向到实现此集成的简短示例或解决方案,那将非常有帮助。
当我尝试使用ByteArrayHttpMessageConverter
(或)时出现以下错误ResourceHttpMessageConverter
使用当前实现更新问题: 这就是我正在创建的 resttemplate bean。
我的 API 客户端调用是
java - 如何使用 RestTemplate 使用 AbstractMessageConverter
1.总结问题
我正在尝试使用 RestTemplate 将逗号分隔值(CSV 格式的数据,而不是 csv 文件)读入 responseEntity(ResponseEntity<List<Map<String, Object>>> responseEntity)。
但是,我在下面收到错误。
org.springframework.web.client.RestClientException:提取类型 [java.util.List<java.util.Map<java.lang.String, java.lang.Object>>] 和内容类型 [text/csv] 的响应时出错;charset=utf-8]; 嵌套异常是 org.springframework.http.converter.HttpMessageNotReadableException:JSON 解析错误:无法反序列化java.util.ArrayList
超出 VALUE_STRING 令牌的实例;嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException:无法反序列化java.util.ArrayList
[Source: (PushbackInputStream); 行:1,列:1]
2.描述你尝试了什么
: 我试过一些Messageconverters。
从这里 https://www.logicbig.com/tutorials/spring-framework/spring-web-mvc/csv-msg-converter.html 我在那里得到了一些有用的信息并使用了一些。但我一直收到同样的错误。
3.适当的时候,显示一些代码
我从这里收到该错误消息。
responseEntity = restTemplate.exchange(apiUrl, httpMethod, requestEntity, new ParameterizedTypeReference<List<Map<String, Object>>>() { });