Я пытаюсь записать содержимое некоторых файлов в файл журнала Apache karaf (только для некоторого тестирования). Для этого я использую следующий маршрут с Camel:Использование верблюда Apache в пакетах на Apache karaf
from("file:C:/input?noop=true").process(new LogProcessor()).to(
"stream:out");
LogProcessor ничего не делает прямо сейчас, и мой pom.xml выглядит следующим образом (построение его с Maven):
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<modelVersion>4.0.0</modelVersion>
<groupId>osgi</groupId>
<artifactId>osgi</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>bundle</packaging>
<name>osgi Bundle</name>
<description>osgi OSGi bundle project.</description>
<dependencies>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<version>4.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.14.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-stream</artifactId>
<version>2.14.3</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>osgi</Bundle-SymbolicName>
<Bundle-Version>1.0-SNAPSHOT</Bundle-Version>
<Bundle-Activator>osgi.Activator</Bundle-Activator>
<Export-Package>
osgi*;version=1.0-SNAPSHOT
</Export-Package>
<Import-Package>
*
</Import-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
Я также выполнил
features:install camel-stream
на karaf и, конечно же, сам верблюд также установлен на карафе.
Но все-таки я получаю ошибку
[...]No component found with scheme: stream[...]
на karaf.
Уже просмотрено много форумов и прочее, но не удалось найти решение ... любая помощь приветствуется!
Спасибо большое! Это была проблема, и теперь она наконец работает :) - это способ решить эту проблему или есть ли другое решение «лучшей практики»? Например, у меня возникла проблема simliar при попытке использовать CSV, но нет CsvComponent или что-то вроде этого, чтобы добавить – Milla
Если вы создаете DefaultCamelContext самостоятельно, вам нужно добавить компоненты вручную. Если вы хотите использовать Spring, то он автоматически создаст CamelContext для вас со всеми доступными компонентами. См. Http://camel.apache.org/spring.html Если у вас нет ничего против использования Spring, то это моя рекомендация. Обратите внимание, что тогда вы больше не будете использовать Bundle Activator, так как Spring активирует ваш CamelContext и добавляет к нему маршруты. – jnupponen
Весна прекрасно работает при запуске в консоли с помощью «mvn: camel run», но не работает при развертывании на Apache karaf. – Milla