如何解决InvalidTypeIdException时使用@FeignClient?



我有一个Spring Boot Library软件包common-library,其中包含一个DTO类,如OrderDTO[package-com.example.common.dto]。

我有两个微服务——Core&Notification服务。在Core服务中,我在com.example.core.domain包中有Order类。

Notification服务中,我添加了common-library外部依赖并创建了@FeignClient

import com.example.common.dto.OrderDTO;
@FeignClient(name = "core")
public class CoreServiceClient {
@GetMapping("/api/v1/order/get/{id})
OrderDTO getOrderById(@PathVariable("id") String id);
}

现在当我从通知服务调用getOrderById方法,我得到以下错误

InvalidTypeIdException: "Could not resolve type id 'com.example.core.domain.Order' as a subtype of `com.example.common.dto.OrderDTO`: no such class found"

现在我知道解决这个问题的一个简单方法是在com.example.core.domain包中创建匹配类Order

但是我想知道是否有任何不需要创建相同类的解决方案

我找到了问题所在。我正在添加MappingJackson2HttpMessageConverter使用ObjectMapperbean作为构造函数参数

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(0, new MappingJackson2HttpMessageConverter(objectMapper()));
}

序列化响应中的数据类型信息。删除objectMapper()

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(0, new MappingJackson2HttpMessageConverter());
}

相关内容

  • 没有找到相关文章

最新更新