2013-07-16 3 views
0

Я создал новый конвертер со следующей структурой:Невозможно подобрать пользовательский верблюжий конвертер

package com.mycompany; 

@Converter 
public final class MyCustomConverter { 
    @Converter 
    public static TypeB convert(TypeA typeA) { 
    // do the conversion 
    } 
} 

Я также создал в моей src/main/java/resources папки следующего пакета, META-INF.services.org.apache.camel и в том, что файл, который TypeConverter просто говорит:

com.mycompany 

в моем маршруте из TypeA я получил:

<convertBodyTo type="com.mycompany.TypeB" /> 

Но мои тесты постоянно не в состоянии подобрать файл и, таким образом, не может найти конвертер, с исключением является:

причиненном: org.apache.camel.NoTypeConversionAvailableException: Нет типа доступного конвертера для преобразования из Тип: com.mycompany.TypeA для требуемого типа: com.mycompany.TypeB со значением TypeA [value1 = «бла»]

Могу ли я имел в виду, чтобы сделать что-то еще, чтобы получить мой тест, чтобы подобрать TypeConverter файл? Несомненно, это папка ресурсов с точной структурой добавляет ее в путь к классам, и поэтому она будет доступна.

ответ

2

Его рекомендуется в файле TypeConverter перечислить на FQN всех ПРЕОБРАЗОВАТЕЛИ типа, например

com.mycompany 

Должно быть

com.mycompany.MyCustomConverter 

Это также то, что мы говорим на этой странице: http://camel.apache.org/type-converter.html

И вы могли бы проверить внутри сгенерированного JAR-файла, что существует каталог META-INF/services/org/apache/camel, и что присутствует файл TypeConverter (d это не в какой-то директории, как META-INF/org.apache.camel).

Также какова среда выполнения, которую вы используете? Вы запускаете автономный Camel, Tomcat, OSGi или что-то еще?

+0

Thanks Claus. На самом деле я нашел, что мой конвертер работает. Однако один из наших тестов, который обычно издевается над всем, терпит неудачу, поскольку он не может найти конвертер. Я предполагаю, что есть что-то в тесте на верблюде, которое позволяет мне издеваться над вызовом convertBodyTo. Спасибо за отзыв о явном именовании конвертера. – edwardmlyte

+0

Мы используем среду OSGI, и рассматриваемый класс тестов расширяет CamelBlueprintTestSupport. – edwardmlyte

+0

Можете ли вы проверить, правильно ли вы создаете правильный META-INF/services/file в тестовом комплекте? –

Смежные вопросы