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

Camel Quarkus似乎没有使用Quarkus objectmapper

施招
2023-03-14

我有一个Camel-ReST路由,它使用Jackson将集合转换为JSON,但当集合中的对象包含LocalDate时,它会抛出一个错误(没有LocalDate,一切都很好)。

com.fasterxml.jackson.databind.exc.:默认不支持Java8日期/时间类型java.time.LocalDate:添加模块"com.fasterxml.jackson.datatype: jackson-datatype-jsr310"

我添加了一个类来定制Quarkus ObjectMapper:


    @Singleton
    class MyObjectMapperCustomizer : ObjectMapperCustomizer {
        override fun customize(objectMapper: ObjectMapper) {
            objectMapper.registerModule(JavaTimeModule())
        }
    }

但是看起来Camel没有使用这个ObjectMapper,我可以在VisualVM中看到ObjectMapper类有3个实例。

抛出异常的Camel restendpoint是:

     .get().produces(MediaType.APPLICATION_JSON).route()
     .bean(svc.getAllTradeList()).marshal().json(JsonLibrary.Jackson).endRest()

AllTradeListsvc.get只是将交易机构设置为交易对象列表,而交易对象本身非常基本:

    @RegisterForReflection
    data class Trade(
        val id: String,
        val description: String,
        val notional: Double,
        val tradeDate: LocalDate
    )

我看不出有什么明显的方法可以让Camel使用我正在定制的Quarkus ObjectMapper,或者定制Camel似乎正在创建的对象。

任何指点都将不胜感激。

共有1个答案

潘修文
2023-03-14

如果有多个对象映射器实例,则camel不知道选择哪个实例,因此要使用它,您必须明确配置camel应该使用什么:

如果夸克的对象映射器被命名,您可以执行以下操作:

.marshal()
    .json()
        .libray(JsonLibrary.Jackson)
        .objectMapper("name-of-the-object-mapper") 

如果没有,您可以创建JacksonDataFormat的实例并对其进行配置:

JacksonDataFormat df = new JacksonDataFormat();
df.setObjectMapper(mapper) // use CDI to get a referece

然后直接使用:

.marshal(mapper)
 类似资料:
  • 这是我的功能: 我有十个测试,完全是这样的: 因此,根据我的计算,一次测试只会产生1/10,000次重复运行,10次测试只会产生1/1000次重复运行。然而,它在大约50%的运行中创建了副本,我不知道为什么。

  • 我对python还很陌生,我正在尝试创建21点。然而,当我试图打印出玩家的手牌时,我遇到了一些困难。 这是我的击球(抽牌)代码: 这是我打印卡片的代码: 我的代码所做的第一件事是为庄家和玩家抽两张牌,这运行得很好。然而,当玩家抽到一张牌后,它就会变得有点摇摆不定。输出如下所示: 当我抽到一张新牌时,这张牌不变,它保持我抽到的最后一张牌。然后,当我打印我的甲板,它打印我的旧甲板和我的新甲板。但是,分

  • 我正在运行具有以下配置的Web服务器: Ubuntu 14.04 PHP 5.5.9 PHP-FPM Nginx 当我在Symfony应用程序中上传文件时,我收到错误

  • 我正在使用Mapstruct 1.3.0投影这个源对象; 进入本DTO: 在我的界面中,我没有为字段“noMappingDefined”定义任何映射 在构建项目时,将POM中的compilerArgs中的UnappedTargetPolicy设置为WARN不会导致任何通知,并且在Mapstruct生成的目标类中找不到没有映射的字段。 生成的类没有像预期的那样包括未映射的字段,但是我希望在构建项目时

  • 我正试图在我的测试环境中部署一个基于3个节点的: 1个名称节点(主节点:172.30.10.64) 2个数据节点(slave1:172.30.10.72和slave2:172.30.10.62) 我在namenode中配置了主属性文件,在datananodes中配置了从属性文件。 主持人: hdfs站点。xml: 核心站点。xml: yarn-site.xml: mapred-site.xml:

  • 我试图用下面的正则表达式解析一些日期。但它似乎只使用了一些连字符。请看下面的链接。它与某些日期不匹配。我添加了那个特殊的连字符,但它只在RGE0101中有效。通用域名格式。不是用Python。 https://regex101.com/r/vI6qN1/1