Не могли бы вы помочь мне выяснить, что не так с моим приложением?Он находится в состоянии «Разрешено», как только я опубликую его в JBoss Fuse.
Я сделал простой парсер .csv, используя платформу Apache Camel.Я использую .marshal () / unmarshal (). Csv () для анализа файла.
Я развертываю его в OSGi и запускаю сервер JBoss Fuse и это приложение в разрешенном состоянии вместо активного.Но если я исключу синтаксический анализ, он будет работать с ClassCastExceptions, но, по крайней мере, он будет в активном состоянии.Поэтому кажется, что OSGi не может разрешить сортировку, но я установил функцию: camel-csv.
public final class MyRouteBuilder extends RouteBuilder {
@Override
public void configure(){
from("file:/../?fileName=..")
.unmarshal()
.csv()
.process(exchange ->
{
List<List<String>> data = (List<List<String>>) exchange.getIn().getBody();
List<List<String>> newData = new ArrayList<>();
data.forEach(line -> {
List<String> newLine = chosenColumns
.stream()
.map(line::get)
.collect(Collectors.toList());
newData.add(newLine);
});
log.info(newData.toString());
exchange.getIn().setBody(newData);
}
)
.marshal()
.csv()
.convertBodyTo(String.class)
.to("file:/../?fileName=..");
}
}
Приведенный выше код представляет маршрутизатор.Не могли бы вы помочь мне с этим?
Кстати, приложение запускается через Activator, а Maven содержит следующие зависимости:
<dependencies>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.12.4</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-csv</artifactId>
<version>2.12.4</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<version>4.3.1</version>
<scope>provided</scope>
</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>
<Import-Package>*</Import-Package>
<Bundle-Activator>com.sample.Activator</Bundle-Activator>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
И в журнале: tail я вижу следующее:
org.apache.camel.FailedToCreateRouteException: Failed to create route route1 at: >>> Unmarshal[org.apache.camel.model.dataformat.CsvDataFormat@6be36954] <<< in route: Route(route1)[[From[file://C:/Users/Pavel_Polubentcev/Downlo... because of Data format 'csv' could not be created. Ensure that the data format is valid and the associated Camel component is present on the classpath
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1072)
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:196)
at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:974)
at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:3301)
at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3024)
at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:175)
at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2854)
at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2850)
at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2873)
at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:2850)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2819)
at com.packt.camel.chapter3.Activator.start(Activator.java:18)
at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
at org.apache.felix.framework.Felix.activateBundle(Felix.java:2154)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2072)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1299)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:304)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: Data format 'csv' could not be created. Ensure that the data format is valid and the associated Camel component is present on the classpath
at org.apache.camel.model.DataFormatDefinition.getDataFormat(DataFormatDefinition.java:107)
at org.apache.camel.model.DataFormatDefinition.getDataFormat(DataFormatDefinition.java:88)
at org.apache.camel.model.UnmarshalDefinition.createProcessor(UnmarshalDefinition.java:181)
at org.apache.camel.model.ProcessorDefinition.makeProcessorImpl(ProcessorDefinition.java:534)
at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:495)
at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:219)
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1069)
... 18 more
Но функция camel-csv установлена, и camel-csv представлен в pom.