Java 8 红帽保险丝快速启动应用程序“;基于内容的路由器-Java DSL“;不创建;工作“;文件夹 问题
Red Hat Fuse Quickstart应用程序“基于内容的路由器-Java DSL”模板不起作用。i、 例如,在构建、运行和部署(到“Red Hat Fuse 7.1”)时,永远不会创建“工作”文件夹 以下是Java代码: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
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" />