У меня есть класс 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 и при этом вводить зависимость преобразователей типов?