Feign.codec.EncodeException: ошибка преобразования тела запросаJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Feign.codec.EncodeException: ошибка преобразования тела запроса

Сообщение Anonymous »

Попытка загрузить файл через Rest-запрос с использованием MultiPartFile. Получение запроса в контроллере в приложении A, который вызывает службу, которая затем вызывает FeignClient для вызова другой конечной точки REST в приложении B.
Класс контроллера

Код: Выделить всё

@RestController("strategy")
@Validated
public class StrategyController {
private final StrategyService strategyService;

public StrategyController(StrategyService strategyService) {
this.strategyService = strategyService;
}
@RequestMapping(path = ASSORT_STRAT_UPLOAD_REQUEST, method = RequestMethod.POST)
public ResponseEntity upload(MultipartFile file) {
return ResponseEntity.ok(strategyService.upload(file));
}
Класс обслуживания

Код: Выделить всё

@Service
public class StrategyServiceImpl implements StrategyService {
private final strategyServiceRestClient strategyServiceRestClient;

public StrategyServiceImpl(strategyServiceRestClient strategyServiceRestClient) {
this.strategyServiceRestClient = strategyServiceRestClient;
}

@Override
public String upload(MultipartFile file) {
return strategyServiceRestClient.uploadRequest(file);
}
}
Притвориться клиентом

Код: Выделить всё

@FeignClient(value = "strategy", url = "${strategy-service-url}", configuration = StrategyServiceFeignConfig.class)
public interface StrategyServiceRestClient {
@RequestMapping(method = RequestMethod.POST, value = KimsBffConstants.ASSORT_STRAT_UPLOAD_REQUEST)
@HandleFeignException(HandleFeignClientException.class)
String uploadRequest(@RequestPart MultipartFile file);
}
При вызове StrategyServiceRestClient.uploadRequest(file) наблюдается следующее исключение;
Вызвано:

java.io.FileNotFoundException: ресурс MultipartFile [файл] не может быть
разрешен в URL-адрес по адресу
org.springframework.core.io.AbstractResource.getURL(AbstractResource.java:113)
at
org.springframework.core.io.AbstractResource.getURI(AbstractResource.java:123)
в
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Метод) в
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
в
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569) at
com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:689)
at
com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java :774)
at
com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)
at
com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField( BeanPropertyWriter.java:728)
at
com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:774)
at
com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java :178)
в
com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeOptionalFields(MapSerializer.java:869)
at
com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeWithoutTypeInfo(MapSerializer .java:760)
в
com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:720)
at
com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer .java:35)
в
com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480)
at
com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:400) )
в
com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1514)
at
com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1007)в
org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:456)
at
org.springframework.http.converter.AbstractGenericHttpMessageConverter.write(AbstractGenericHttpMessageConverter.java:104)
at
org.springframework.cloud.openfeign.support.SpringEncoder.checkAndWrite(SpringEncoder.java:217)в
org.springframework.cloud.openfeign.support.SpringEncoder.encodeWithMessageConverter(SpringEncoder.java:146)


Подробнее здесь: https://stackoverflow.com/questions/793 ... quest-body
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»