如何设置骆驼路由在Guidewire中使用的对象贴?

问题描述 投票:0回答:0

GuideWire集成网关应用程序,使用Apache Camel4.4.4

如何在应用程序中使用骆驼路由使用的Jackson ObjectMapper在哪里配置?该路由使用的默认对象mapper不包含使用@Inject Annotation提供的ObjectMapper时配置和可用的预期模块。

@Inject private ObjectMapper jacksonObjectMapper;
这提供了来自Camel-Jackson的对象映射器,并注册了模块
Rute看起来像:

from("direct:policy-search") .routeId("pcPolicySearch") .process(this::doPCSearch) //read parameters and set exchange body .marshal().json(JsonLibrary.Jackson) //transform body into json string

在路由configure()块中,我尝试为Exchange设置全局选项,但没有效果:当路由运行时,它仍然具有没有模块的默认映射器。
 getCamelContext().getGlobalOptions().put("useDefaultObjectMapper", "false");
 getCamelContext().getGlobalOptions().put("autoDiscoverObjectMapper", "true");

我尝试添加带有@configure注释的类,但永远不会调用。

i我尝试添加一个应用程序。
camel.component.jackson.useDefaultObjectMapper=false
camel.component.jackson.autoDiscoverObjectMapper=true

i尝试在gw-application.yaml中设置相同的值,但是这些值未出现,duestefoaultObjectMapper在dataformat上始终为true

camel: component: jackson: use-default-object-mapper: false auto-discover-object-mapper: true

I从交易所抓住了注册的对象apper,它是我想要的,但是当路由执行dataformat上的objectMapper时,没有模块。
Map<String, ObjectMapper> s=getCamelContext().getRegistry().findByTypeWithName(ObjectMapper.class);

您的Dopcsearch方法是什么样的?通常,我在路由定义中看到的是.process()调用实例处理器(实现处理器接口的类),在那里您可以将ObjectMapper定义为类变量,并将其定义在Process()方法()方法中.


apache-camel guidewire
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.