【问题标题】:Camel spring javaconfig骆驼弹簧javaconfig
【发布时间】:2016-06-14 20:26:47
【问题描述】:

我在配置 camel 以使用 java config 和 maven camel:run 插件时遇到问题。

这里是插件 xml:

            <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>

这是课程代码

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();
    }
}

当我使用 set config 类时,我收到以下错误: The method setConfigClass(Class&lt;MyRouteConfiguration&gt;) is undefined for the type Main

【问题讨论】:

    标签: java spring apache-camel maven-plugin


    【解决方案1】:

    完整的答案改版。

    为了专门使用 maven camel run 插件,您需要添加一个“模板 camel-context 文件”所有此文件需要做的就是导入您的 java 配置。

    Java 配置

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

    Maven Camel 插件

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

    Spring Xml 上下文

    <?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>
    

    如果你想完全免费使用 xml,你可以删除你的 Spring Xml 上下文并在你的 java 配置中添加一个新的 main 方法。并删除骆驼 maven 插件以支持 exec:java 命令。

    为没有 Xml 更新了 Java 配置

    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 插件(使用 exec:java 运行)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      相关资源
      最近更新 更多