我有个简单的问题。我不能从文件endpoint读到直接endpoint。下面是代码片段:
public class SampleTwo {
public static void main(String[] args) throws Exception {
final CamelContext camelContext = new DefaultCamelContext();
camelContext.start();
camelContext.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("file://target/inbox?noop=true&fileName=test.csv").to("direct://start"); //Fails with "No consumers available on endpoint" exception
//from("file://target/inbox?noop=true&fileName=test.csv").to("file://target/outbox"); //Works
}
});
Thread.sleep(1000*6000);
// stop the CamelContext
// camelContext.stop();
}}
我得到一个异常“endpoint上没有可用的消费者”。这是一个简单的路线&我已经尽我所能了--现在花了超过10个小时:(
[hread #0 - file://target/inbox] EventHelper
TRACE Notifier: org.apache.camel.impl.DefaultRuntimeEndpointRegistry@99e74a is not enabled for the event: ID-01HW466539-57567-1431438054047-0-41 exchange failure: Exchange[test.csv]
cause
org.apache.camel.component.direct.DirectConsumerNotAvailableException: No consumers available on endpoint: Endpoint[direct://start]. Exchange[test.csv]
[hread #0 - file://target/inbox] FileConsumer
TRACE Done processing file: GenericFile[test.csv] synchronously
[hread #0 - file://target/inbox] DefaultErrorHandler
ERROR Failed delivery for (MessageId: ID-01HW466539-57567-1431438054047-0-42 on ExchangeId: ID-01HW466539-57567-1431438054047-0-41). Exhausted after delivery attempt:
1 caught:
org.apache.camel.component.direct.DirectConsumerNotAvailableException: No consumers available on endpoint: Endpoint[direct://start]. Exchange[test.csv]
--------------------------------------------------------------------------------------------------------------------------------------
RouteId ProcessorId Processor Elapsed (ms)
[route1 ] [route1 ] [file://target/inbox?fileName=test.csv&noop=true ] [ 3]
[route1 ] [to1 ] [direct://start ] [ 0]
---------------------------------------------------------------------------------------------------------------------------------------
Exchange[
Id ID-01HW466539-57567-1431438054047-0-41
ExchangePattern InOnly
Headers {breadcrumbId=ID-01HW466539-57567-1431438054047-0-42, CamelFileAbsolute=false, CamelFileAbsolutePath=C:\folder\eclipse-ws-march\camelsampletwo\target\inbox\test.csv, CamelFileContentType=null, CamelFileLastModified=1431426831841, CamelFileLength=45, CamelFileName=test.csv, CamelFileNameConsumed=test.csv, CamelFileNameOnly=test.csv, CamelFileParent=target\inbox, CamelFilePath=target\inbox\test.csv, CamelFileRelativePath=test.csv, CamelRedelivered=false, CamelRedeliveryCounter=0}
BodyType org.apache.camel.component.file.GenericFile
Body [Body is file based: GenericFile[test.csv]]]
---------------------------------------------------------------------------------------------------------------------------------------
org.apache.camel.component.direct.DirectConsumerNotAvailableException: No consumers available on endpoint: Endpoint[direct://start]. Exchange[test.csv]
默认情况下,Direct
组件希望每个生产者都有一个匹配的消费者。请注意Camel文档中显示的新配置选项failifnoconsumers
。没有消费者,交易所在你路线的尽头无处可去。您可以考虑添加另一条路由,如下所示:
public class SampleTwo {
public static void main(String[] args) throws Exception {
final CamelContext camelContext = new DefaultCamelContext();
camelContext.start();
camelContext.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("file://target/inbox?noop=true&fileName=test.csv").to("direct://start");
from("direct://start").to("file://target/outbox"); //ADDED
}
});
Thread.sleep(1000*6000);
}}
我想扫描带有子文件夹的文件夹,这是我的配置 我的问题: > 如何扫描Source/Center*(不带子文件夹目标) 如何在源/Center_A Center_A/目标中路由源/中扫描的文件,以及如何在源/Center_B/目标中路由源/Center_B 我的骆驼语境.xml 编辑1: 第一个问题已解决 编辑2: 第二个问题已修复 最后一个问题,移动选项就足够了,我不想使用 这可能吗?
我正在尝试向外部SOAP服务发送SOAP消息。我需要做的是用SOAP消息包装一个xml字符串,并添加一些SOAP头以进行身份验证。现在我正在使用: 这是可行的,但我还需要包括soap头。有效负载模式只发送带有主体的soap信封。我曾尝试使用拦截器注入头,但它被忽略了。 有可能有一个带有有效负载模式的肥皂标题部分吗?如果没有,完成我正在尝试做的事情的最简单方法是什么? 谢谢
我正在使用apache camel,希望有多条路由。路线如下。
我使用的是camel version2.13.1和camel-ftp version2.13.1。我正试图通过camel路由连接到sftp服务器。我得到了一些与jCraft Jsch异常相关的错误,如下所示。
我试图使用camel-ftpendpoint(特别是sftp模块)上传一个新生成的CSV文件。 我的路线的相关部分如下: 注意:位于的“文件” 传入/feed.csv 创建成功,骆驼的最后几行输出如下: 但是没有 /home/username/file.csv 在linuxserver上。 注: 当我将 sftp 路由配置为以下任一情况时,我得到相同的结果: 或 我错过了什么?
我可以通过使用以下伪测试启动路由(关键是我可以通过)手动启动路由) 扩展 只是一个标记接口 加载SpringContext和stuft 问题是,我必须设置文件名。我读过一些camel设置header的东西(在文件endpoint期间)。它是一个带有时间戳的通用字符串,如果我不设置文件名-写入的文件将获得这个通用字符串作为文件名。