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

文件上传春云假客户端

羊舌迪
2023-03-14
{
"timestamp": 1506933777413,
"status": 500,
"error": "Internal Server Error",
"exception": "feign.codec.EncodeException",
"message": "Could not write JSON: No serializer found for class java.io.FileDescriptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS); nested exception is com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class java.io.FileDescriptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile[\"inputStream\"]->java.io.FileInputStream[\"fd\"])",
"path": "/attachments"
}
@FeignClient(name="attachment-service", fallback=AttachmentHystrixFallback.class)
public interface AttachmentFeignClient {

@RequestMapping("upload")
void upload(@RequestPart(name="file") MultipartFile file, @RequestParam(name="attachableId") Long attachableId, 
        @RequestParam(name="className") String className, @RequestParam(name="appName") String appName);
@RestController
public class AttachmentController implements Serializable {

/**
 * 
 */
private static final long serialVersionUID = -4431842080646836475L;

@Autowired
AttachmentService attachmentService;

@RequestMapping(value = "attachments", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public void upload(@RequestPart MultipartFile file, @RequestParam Long attachableId, @RequestParam String className, @RequestParam String appName) throws Exception {
    attachmentService.uploadFile(file, attachableId, className, appName);
}

}

我肯定在这里缺少某种序列化程序
任何建议都将不胜感激!
谢谢

共有1个答案

端木安国
2023-03-14

经过几天的寻找解决方案,我发现了这个。您应该开始为spring依赖项添加feign表单:

<dependency>
   <groupId>io.github.openfeign.form</groupId>
   <artifactId>feign-form-spring</artifactId>
   <version>3.3.0</version>
</dependency

那么您的假客户机需要这个spring表单编码器:

@FeignClient(
    name="attachment-service",  
    configuration = {AttachmentFeignClient.MultipartSupportConfig.class}
    fallback=AttachmentHystrixFallback.class)
public interface AttachmentFeignClient {

@RequestMapping(value= {"upload"}, consumes = {"multipart/form-data"})
void upload(
    @RequestPart(name="file") MultipartFile file, 
    @RequestParam(name="attachableId") Long attachableId, 
    @RequestParam(name="className") String className,
    @RequestParam(name="appName") String appName);

 public class MultipartSupportConfig {
    @Bean
    @Primary
    @Scope("prototype")
    public Encoder feignFormEncoder() {
        return new SpringFormEncoder();
    }
  }
}

我希望它能帮助到某人。

 类似资料:
  • 我正在为一个项目使用Spring Boot,我正在尝试上传大文件,但不知何故它不起作用。 我在端口8080上运行Spring Boot Zuul(@EnableZuulProxy),然后是另一个应该处理上传的微服务(我们称之为数据存储)。 我向http://localhost:8080/zuul/my/upload/endpoint发送了一个包含文件和文本字符串的多部分请求。 当我上传一个100M

  • 我需要通过HTTPS调用第三方rest api。我想在spring Boot应用程序中使用假客户端。我有一个关于假客户端和如何使用它进行api调用的想法。但我不确定如何传递证书文件和密钥。下面是我想使用feign Client实现的示例python代码提取。能不能帮我把标记为**的代码合并起来。

  • 当我试图从客户端上传时,我一直得到403。这是因为桶上没有条件吗?如果我只是指定密钥-没有访问密钥,签名或策略-它将上传罚款。 桶策略: CORS(因当地开发而开放) 签名生成 客户:

  • 本文向大家介绍Java下http下载文件客户端和上传文件客户端实例代码,包括了Java下http下载文件客户端和上传文件客户端实例代码的使用技巧和注意事项,需要的朋友参考一下 一、下载客户端代码 上述代码只适合下载小文件,如果下载大文件则会出现  Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 错误,所以

  • 我想把硒和Spring一起使用。 如果我在没有Spring的情况下使用Selenium,一切正常。每当我添加Spring依赖项(没有Spring代码)时,执行时会引发以下异常: 线程“main”java中出现异常。lang.NoClassDefFoundError:org/openqa/selenium/MutableCapabilities at java。lang.ClassLoader。在j