Java ';车身参数过多';外国客户例外
我正在使用Springs虚拟客户端功能从一个微服务到另一个微服务进行通信 现在,被调用的服务公开了一个REST接口,该接口接受一个文件和一个相关的(JSON)对象Java ';车身参数过多';外国客户例外,java,spring,rest,netflix-feign,Java,Spring,Rest,Netflix Feign,我正在使用Springs虚拟客户端功能从一个微服务到另一个微服务进行通信 现在,被调用的服务公开了一个REST接口,该接口接受一个文件和一个相关的(JSON)对象 @RequestMapping(value={CONVERT\u PATH,APPLICATION\u PATH+CONVERT\u PATH},method=RequestMethod.POST,products=CONTENT\u TYPE) 公共响应属性转换(@RequestPart(“file”)多部分文件文件,@Reques
@RequestMapping(value={CONVERT\u PATH,APPLICATION\u PATH+CONVERT\u PATH},method=RequestMethod.POST,products=CONTENT\u TYPE)
公共响应属性转换(@RequestPart(“file”)多部分文件文件,@RequestParam(“input”)input in){…}
这个接口运行正常,我通过从不同的源向它发送一个有效的多部分/混合实体来验证这一点
然后,在我的另一项服务中,我设置了一个匹配的外部客户端来使用此接口:
@FeignClient("convert")
public interface ConvertClient {
@RequestMapping(value = CONVERT_PATH, method = RequestMethod.POST, consumes = "multipart/mixed")
ResponseEntity<InputStreamResource> convert(@RequestPart("file") MultipartFile file, @RequestPart("input") Input in);
}
@FeignClient(“转换”)
公共接口转换客户端{
@RequestMapping(value=CONVERT\u PATH,method=RequestMethod.POST,consumes=“multipart/mixed”)
ResponseEntity转换(@RequestPart(“文件”)多部分文件文件,@RequestPart(“输入”)输入到);
}
同样,从一个服务到另一个服务的连接也在工作,我在外国客户机(不使用多个部分的客户机)中使用不同的请求接口验证了这一点
当我尝试使用此特定接口方法构建(客户机)服务时,出现以下异常:
FactoryBean threw exception on object creation;
nested exception is java.lang.IllegalStateException: Method has too many Body parameters:
public abstract org.springframework.http.ResponseEntity <..>.feign.ConvertClient.convert(org.springframework.web.multipart.MultipartFile,<..>.Input)
FactoryBean在创建对象时引发异常;
嵌套异常为java.lang.IllegalStateException:方法的主体参数太多:
公共抽象org.springframework.http.ResponseEntity.feign.ConvertClient.convert(org.springframework.web.multipart.MultipartFile.Input)
我能做些什么来让这一切顺利吗?
正如我所说的,可以访问REST接口,并且不同的外部调用正在工作。如果我没弄错的话,这应该行得通。
Springs-Feign是否不支持多部分/mixed for-Feign接口?我刚刚发布了一个自定义的Feign编码器,可以对多部分请求(一个或多个文件,以及json部分)进行编码。你可以试试。让我知道如果有其他用例可以实现,请随时打开问题
FactoryBean threw exception on object creation;
nested exception is java.lang.IllegalStateException: Method has too many Body parameters:
public abstract org.springframework.http.ResponseEntity <..>.feign.ConvertClient.convert(org.springframework.web.multipart.MultipartFile,<..>.Input)