При отправке почтового запроса из одного микросервиса в другой с использованием имитации клиента spring cloud netflix я получаю следующую ошибку в Postman:
{
"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"
}
И моя консоль eclipse показывает следующее исключение:
com. support.StandardMultipartHttpServletRequest $ StandardMultipartFile ["inputStream"] -> java.io.FileInputStream ["fd"]) в com.fasterxml.jackson.databind.JsonMappingException.from (JsonMappingException.java: 284) ~ [-jackson 2.8 9.jar: 2.8.9] в com.fasterxml.jackson.databind.SerializerProvider.mappingException (SerializerProvider.java:1110) ~ [jackson-databind-2.8.9.jar: 2.8.9] в com.fasterxml.jackson. databind.SerializerProvider.reportMappingProblem (SerializerProvider.java:1135) ~ [jackson-databind-2.8.9.jar: 2.8.9] в com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty (UnknownSerializer.java:69 ) ~ [jackson-databind-2.8.9.jar: 2.8.9] в com.fasterxml.jackson.d atabind.ser.impl.UnknownSerializer.serialize (UnknownSerializer.java:32) ~ [jackson-databind-2.8.9.jar: 2.8.9] в com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField (BeanPropertyWriter.java : 704) ~ [jackson-databind-2.8.9.jar: 2.8.9] в com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields (BeanSerializerBase.java:689) ~ [jackson-databind-2.8. 9.jar: 2.8.9] в com.fasterxml.jackson.databind.ser.BeanSerializer.serialize (BeanSerializer.java:155) ~ [jackson-databind-2.8.9.jar: 2.8.9] в com.fasterxml. jackson.databind.ser.BeanPropertyWriter.serializeAsField (BeanPropertyWriter.java:704) ~ [jackson-databind-2.8.9.jar: 2.8.9] в com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields (BeanSerializeFields (BeanSerializeFields) .java: 689) ~ [jackson-databind-2.8.9.jar: 2.8.9] в com.fasterxml.jackson.databind.ser.BeanSerializer.serialize (BeanSerializer.java:155) ~ [jackson-databind-2.8. 9.jar: 2.8.9] в com.fasterxml.jackson.databind.ser.De faultSerializerProvider.serializeValue (DefaultSerializerProvider.java:292) ~ [jackson-databind-2.8.9.jar: 2.8.9] в com.fasterxml.jackson.databind.ObjectWriter $ Prefetch.serialize (ObjectWriter.java:1429) ~ [jackson -databind-2.8.9.jar: 2.8.9] в com.fasterxml.jackson.databind.ObjectWriter.writeValue (ObjectWriter.java:951) ~ [jackson-databind-2.8.9.jar: 2.8.9]
ОБНОВЛЕНИЕ 1
Это мой воображаемый интерфейс:
@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);
}
}
Мне определенно не хватает какого-то сериализатора здесь
Любое предложение будет оценено!
Спасибо