我有一个 TypeConverter 类,它设置在 blueprint.xml 文件中,并通过构造函数注入依赖项。我可以验证在将 OSGI 包部署到 FuseESB 时是否创建了该类。
convertBodyTo
我使用骆驼上下文中的元素应用类型转换器
<convertBodyTo type="com.example.RegisterRequest" />
但这在构造转换器时失败并出现实例化异常
Caused by: java.lang.InstantiationException: com.example.RegisterRequestConverter
at java.lang.Class.newInstance0(Class.java:359)[:1.7.0_21]
at java.lang.Class.newInstance(Class.java:327)[:1.7.0_21]
at org.apache.camel.util.ObjectHelper.newInstance(ObjectHelper.java:1166)
如果我添加一个 noarg 构造函数,那么就会创建转换器 - 但显然没有它的依赖关系。
类型转换器的 Camel 文档http://camel.apache.org/type-converter.html指出
鼓励使用静态方法来减少缓存,但实例方法很好,特别是如果您希望允许可选的依赖注入来自定义转换器
是否可以通过 xml 定义路由并且仍然注入类型转换器依赖项?