2016-06-09 15 views
0

Ich habe Probleme bei der Konfiguration von camel, um java config mit dem maven camel: run plugin zu verwenden.Camel spring javaconfig

hier ist das XML-Plugin:

  <plugin> 
       <groupId>org.apache.camel</groupId> 
       <artifactId>camel-maven-plugin</artifactId> 
       <version>2.15.1.redhat-621084</version> 
       <configuration> 
        <mainClass>com.deltashade.config.MyRouteConfiguration</mainClass> 
       </configuration> 
      </plugin> 

hier ist der Klassencode

import org.apache.camel.spring.javaconfig.Main; 
import org.apache.camel.spring.javaconfig.CamelConfiguration; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 

@Configuration 
@ComponentScan("com.deltashade.hellocamel") 
public class MyRouteConfiguration extends CamelConfiguration { 
    public static void main(String[] args) throws Exception { 
     Main main = new Main(); 
     main.setConfigClass(MyRouteConfiguration.class); 
     main.run(); 
    } 
} 

Wenn ich den Satz Config-Klasse verwenden, ich die folgende Fehlermeldung erhalten: The method setConfigClass(Class<MyRouteConfiguration>) is undefined for the type Main

Antwort

2

Komplett Antwort Überarbeitung.

Um das maven camel run Plugin verwenden zu können, müssen Sie eine "template camel-context file" hinzufügen. All diese Datei muss nur Ihre java config importieren.

Java Config

@Configuration 
@ComponentScan("com.mcf.xml.free.route") 
public class RouteJavaConfig extends CamelConfiguration { 

} 

Maven Camel Plugin

  <plugin> 
       <groupId>org.apache.camel</groupId> 
       <artifactId>camel-maven-plugin</artifactId> 
       <version>${camel.version}</version> 
      </plugin> 

Spring-XML-Kontext

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> 

    <context:annotation-config/> 
    <bean class="com.mcf.xml.free.config.RouteJavaConfig"/> 
</beans> 

Wenn Sie völlig xml frei gehen möchten, können Sie Ihre Spring-XML-Kontext löschen und in Ihre Java-Konfiguration fügen Sie eine neue Hauptmethode hinzu. Und entfernen Sie das camel maven-Plugin zugunsten des Befehls exec: java.

Aktualisiert Java Config ohne Xml

import org.apache.camel.spring.javaconfig.CamelConfiguration; 
import org.apache.camel.spring.javaconfig.Main; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 

@Configuration 
@ComponentScan("com.mcf.xml.free.route") 
public class RouteJavaConfig extends CamelConfiguration { 
    public static void main(String[] args) throws Exception { 
     Main main = new Main(); 
     main.setConfigClass(RouteJavaConfig.class); 
     main.run(); 
    } 
} 

exec Maven Plugin (laufen mit exec: java)

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <configuration> 
     <mainClass>com.mcf.xml.free.config.RouteJavaConfig</mainClass> 
    </configuration> 
</plugin> 
Verwandte Themen