【问题标题】:Multiple Type Converters in Apache CamelApache Camel 中的多种类型转换器
【发布时间】:2015-02-17 14:44:39
【问题描述】:

我的 jar 中有一个 HashMap 到字符串类型转换器,比如 A.jar,但另一个 jar 中存在一个类似的转换器,B.jar(由同一服务器中的第三方公开)但我总是想要我的类型转换器(存在于 A.jar 中)以在我调用时在我的骆驼路线中被调用

String body=message.getBody(String.class);

知道如何做到这一点吗?

【问题讨论】:

标签: java apache-camel typeconverter


【解决方案1】:

如果类加载器在同一个骆驼上下文中加载了两个 jar,那么这里很有可能出现问题。

你可以解决它。

首先,您可以只使用对特定类型转换器的 bean 引用(而不是 getBody(String.class))。

或者其次,您可以在运行时侵入TypeConverterRegistry,看看是否可以删除不需要的,请参阅:context.getTypeConverterRegistry()

【讨论】:

    【解决方案2】:

    您可以创建一个仅包含字符串元素的包装类。让我们称之为 WrapperString。 定义这个包装类的 toString() 方法只返回 String 元素。

    修改你的转换器,从 Hashmap 到 String 到 Hashmap 到 WrapperString。

    在转换逻辑中,您只需编写自己的逻辑将 hashmap 转换为 String,然后创建 WrapperString 类的实例并将转换后的值分配给该对象。

    【讨论】:

      猜你喜欢
      • 2020-09-29
      • 1970-01-01
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多