【问题标题】:Deploying Apache Camel project部署 Apache Camel 项目
【发布时间】:2013-02-11 14:59:36
【问题描述】:

我使用 spring 配置创建了一个 Camel 项目,现在,我需要在我的生产环境中部署和运行它。基本上,它是一个侦听 RabbitMQ 代理的进程,并在发送消息时对其进行处理。我正在使用 Eclipse,并为此目标创建了一个调试/运行配置:

camel:run

使用Spring配置文件定义路由和bean,我没有写任何主类,如何部署和运行呢?我无法在生产环境中重新编译项目,因为我无法安装新软件,所以运行我的流程所需的一切都必须从我的开发环境中复制。

有什么提示吗?谢谢!

【问题讨论】:

    标签: java maven deployment apache-camel


    【解决方案1】:

    http://camel.apache.org/running-camel-standalone.html

    http://camel.apache.org/running-camel-standalone-and-have-it-keep-running.html

    描述允许您部署/运行的机制。

    camel:run 本质上与创建加载 Spring 应用程序上下文的 org.apache.camel.spring.Main 类相同。它可以很简单:

    public static void main( final String[] args) {
    
        Main main = new Main();
        main.setApplicationContextUri("classpath:META-INF/applicationContext.xml");
        main.enableHangupSupport();
    
        try {
            main.run();
        } ...
    }
    

    这与 camel:run 目标基本相同。

    为了使其正确部署,您可能需要使用maven assembly pluginmaven shade plugin。这将允许您创建可以部署的单个工件(zip、jar 等)。相同的代码,相同的路由定义。

    【讨论】:

    • cmonkey,谢谢!这就是我希望收到的回复。简短,带有参考和小代码示例。杰出的!完美!
    • cmonkey,我在这个过程中遇到了一些麻烦。我怎样才能让它永远活着? (直到我手动杀死它)。我删除了 enableHangupSupport() ,现在它保持活动状态 40 / 50 分钟,但之后它将关闭。使用 enableHangupSupport() 至少可以保持 4 分钟。
    • 所描述的过程应该让它永远活着。我认为在应用程序代码中抛出了一些足够致命的异常。或者,某些代码正在破坏应用程序上下文。有日志吗?标准错误?可能需要根据问题提出一个新问题。
    • 现在一切正常。不确定发生了什么变化(我真的很担心)。或者更好的是,我使用相同的应用程序上下文来访问处理器上的数据库。现在我拆分了一下,一个给Camel的应用上下文,一个给DB的,可能是处理器在执行结束时销毁了应用上下文。
    猜你喜欢
    • 2010-12-30
    • 1970-01-01
    • 2019-03-10
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2016-03-27
    • 1970-01-01
    相关资源
    最近更新 更多