Java 8 红帽保险丝快速启动应用程序“;基于内容的路由器-Java DSL“;不创建;工作“;文件夹 问题

Java 8 红帽保险丝快速启动应用程序“;基于内容的路由器-Java DSL“;不创建;工作“;文件夹 问题,java-8,apache-camel,jbossfuse,apache-servicemix,jboss-tools,Java 8,Apache Camel,Jbossfuse,Apache Servicemix,Jboss Tools,Red Hat Fuse Quickstart应用程序“基于内容的路由器-Java DSL”模板不起作用。i、 例如,在构建、运行和部署(到“Red Hat Fuse 7.1”)时,永远不会创建“工作”文件夹 以下是Java代码: package com.mycompany.camel; import org.apache.camel.builder.RouteBuilder; public class CamelRoute extends RouteBuilder { @Over

Red Hat Fuse Quickstart应用程序“基于内容的路由器-Java DSL”模板不起作用。i、 例如,在构建、运行和部署(到“Red Hat Fuse 7.1”)时,永远不会创建“工作”文件夹

以下是Java代码:

package com.mycompany.camel;

import org.apache.camel.builder.RouteBuilder;

public class CamelRoute extends RouteBuilder {

    @Override
    public void configure() throws Exception {

        from("file:work/cbr/input")  //<== "work" folder not created...
            .log("Receiving order ${file:name}")
            .choice()
                .when().xpath("//order/customer/country[text() = 'UK']")
                    .log("Sending order ${file:name} to the UK")
                    .to("file:work/cbr/output/uk")
                .when().xpath("//order/customer/country[text() = 'US']")
                    .log("Sending order ${file:name} to the US")
                    .to("file:work/cbr/output/us")
                .otherwise()
                    .log("Sending order ${file:name} to another country")
                    .to("file:work/cbr/output/others")
            .log("Done processing ${file:name}");
    }

}
package com.mycompany.camel;
导入org.apache.camel.builder.RouteBuilder;
公共类CamelRoute扩展了RouteBuilder{
@凌驾
public void configure()引发异常{

从(“file:work/cbr/input”)/检查C:\的文件夹权限,并使用uri,如下所述:


从(“file://C:/AAAInput/?autoCreate=true&noop=true”)

看,您的路由根本没有启动。请尝试对路由生成器使用直接引用,而不是像这样进行包扫描:

<camel:camelContext id="aaa.bbb.ccc.jar" xmlns="http://camel.apache.org/schema/blueprint">
    <camel:routeBuilder ref="routeBuilder"/>
</camel:camelContext>
<bean id="routeBuilder" class="aaa.bbb.ccc.jar.CamelRoute" />

我执行了以下步骤以使其与Fuse runtime一起工作:

  • 创建一个新的Fuse集成项目-独立的,Karaf/Fuse-on-Karaf,CBR-Java DSL
  • 创建新文件夹和文件“src/main/resources/OSGI-INF/blueprint/blueprint.xml
  • blueprint.xml文件内容:
  • 
    

  • 通过Red Hat Developer Studio中的Servers视图部署项目
  • 由于该文件位于JAR中的OSGI-INF/blueprint目录中,因此在安装包后将自动激活该文件


    无论如何,提供的模板应该是现成的。因此,我向Fuse工具的开发人员提出了一个问题-

    如果您为文件端点指定
    file://C:/AAAInput
    file://C:/BBBOutput
    ,会发生什么?您好。-没有区别。文件夹仍然没有创建。thx!sd“构建并热部署…Java DSL快速启动项目启动并运行-但是,它在创建父“工作”文件夹(更不用说其他子文件夹)之前就停止了。。。。“您使用哪种方法来构建和部署?我试过了,如果我右键单击project并以java应用程序的形式启动,它工作正常。然后右键单击->刷新项目,work/cbr/input文件夹可用。当您说它“停止”时”,你有一些特定的日志吗?@Aurélienpuier是的,它作为本地Java应用程序工作,但是如果我尝试在Fuse运行时部署它,路由不会启动Hi V。-以前尝试过这个,但是-如果我错过了一些语法上的细微差别-我重试了。文件夹仍然无法创建。Thx!sdthx,c0ld。不幸的是,没有任何区别。不知道提供的快速启动模板是否包含独立Java DSL routebuilder的正确依赖项等。谢谢你,Tomas.Ha!今天回来查看…仍然没有修复。(仍然需要添加OSGI-INF/blueprint/bluepring.xml)。哦,好吧…:DYes,你是对的。依赖的JIRA问题仍然存在-:-(
    <camel:camelContext id="aaa.bbb.ccc.jar" xmlns="http://camel.apache.org/schema/blueprint">
        <camel:routeBuilder ref="routeBuilder"/>
    </camel:camelContext>
    <bean id="routeBuilder" class="aaa.bbb.ccc.jar.CamelRoute" />