apache / apache/servicecomb-java-chassis

servicecomb not support patchForObject

未关闭
#2,649 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
enhancement
主要语言
Java
星标
1.9k
派生
814
平均合并
8 天 23 小时
30 天内合并 PR
1

描述

### 使用RestTemplateBuilder.create()创建出来的restTemplate无法通过patchForObject发送patch请求
请求示例
```
restTemplate.patchForObject("cse://test-provider2/provider/tomcat/patch", httpEntity, Map.class);
```
异常如下
```
2021-12-02 10:08:18.361 ERROR 1008 --- [oup0-1-thread-1] o.a.s.c.h.impl.ProducerOperationHandler : unexpected error operation=PRODUCER rest test-consumer2.helloConsumer.sayHello, message=null, cause=I/O error on PATCH request for "cse://test-provider2/provider/tomcat/patch": Null OutputStream is not a valid argument; nested exception is com.fasterxml.jackson.core.JsonGenerationException: Null OutputStream is not a valid argument
```
### 报错原因
org.apache.servicecomb.provider.springmvc.reference.CseClientHttpRequest 类的public OutputStream getBody() 这个方法return为null

贡献指南

这个仓库没有索引到贡献指南

调研方向

从 org.apache.servicecomb.provider.springmvc.reference.CseClientHttpRequest 开始,特别是其 getBody() 方法,并重现 RestTemplateBuilder.create() 调用,随后调用 patchForObject()。跟踪 PATCH 请求如何获取其 body 输出流。当示例 PATCH 请求在没有 Null OutputStream 或 JsonGenerationException 错误的情况下成功时,即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
java, spring
领域
backend
Issue 类型
缺陷
难度
2/5
预计耗时
1-3 小时
活跃度
停滞
描述清晰度
描述清楚
新手友好度
48/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。