преобразование типов в Apache Camel - PullRequest
0 голосов
/ 18 сентября 2018

Я довольно новичок в Apache Camel, и в настоящее время я делаю тестовый проект.В настоящее время я пытаюсь записать некоторые ранее обработанные объекты из пользовательского класса в файл, используя файловый компонент (я не знаю лучшего варианта).

from("direct:processedDecimals")
            .to("file:data/output")

, но у меня есть следующая проблема

   Caused by: org.apache.camel.InvalidPayloadException: No body available of type: java.io.InputStream but has value: Add{x=5.63, y=78.016} of type: org.example.math.Add on: Message[ID-NTB828-1537281187742-0-10]. Caused by: No type converter available to convert from type: org.example.math.Add to the required type: java.io.InputStream with value Add{x=5.63, y=78.016}. Exchange[ID-NTB828-1537281187742-0-9]. Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: org.example.math.Add to the required type: java.io.InputStream with value Add{x=5.63, y=78.016}]

Я видел в интернете, что некоторые люди предлагают написать собственный TypeConverter, а затем зарегистрировать его в файле в папке WEB-INF.Но я использую SpringBoot и его внутренний Tomcat, и у меня нет этого каталога.

1 Ответ

0 голосов
/ 19 сентября 2018

Вы можете преобразовать тело в строку с помощью convertBodyTo (String.class) , для его преобразования будет использован метод toString для вашего объекта:

from("direct:processedDecimals")
    .convertBodyTo(String.class)
    .to("file:data/output");

Это должно написать 'Добавить {x = 5.63, y = 78.016}' в файл.

...