Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JAVA程序将消息从文件路由到Azure事件中心_Java_Azure_Events_Apache Camel - Fatal编程技术网

如何使用JAVA程序将消息从文件路由到Azure事件中心

如何使用JAVA程序将消息从文件路由到Azure事件中心,java,azure,events,apache-camel,Java,Azure,Events,Apache Camel,它与ActiveMQ配合使用效果良好 我想用Azure事件中心编写相同的java程序。文件必须由Camel读取并路由到Azure事件中心 //SimpleRouteBuilder import org.apache.camel.builder.RouteBuilder; public class SimpleRouteBuilder extends RouteBuilder{ @Override public void configure() throws Excepti

它与ActiveMQ配合使用效果良好

我想用Azure事件中心编写相同的java程序。文件必须由Camel读取并路由到Azure事件中心

//SimpleRouteBuilder

import org.apache.camel.builder.RouteBuilder;

public class SimpleRouteBuilder  extends RouteBuilder{

    @Override
    public void configure() throws Exception {
        
        from("file:d:/InputFolderForCamel").split().tokenize("\n").to("jms:queue:javainuse");
        
    }
//MainClass

SimpleRouteBuilder routeBuilder = new SimpleRouteBuilder();
        CamelContext ctx = new DefaultCamelContext();
        
        //configure jms component        
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://0.0.0.0:61616");
        ctx.addComponent("jms", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
        
        try {
            ctx.addRoutes(routeBuilder);
            ctx.start();
            Thread.sleep(5 * 60 * 1000);
            ctx.stop();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
URI格式:azure eventhubs://[namespace/eventHubName][?选项]

如果提供connectionString,则不需要namespace和eventHubName,因为这些选项已包含在connectionString中

例如:
azure-eventhubs://camel/camelHub?sharedAccessName={您的SASpolicyName}&sharedAccessKey={您的SASaccessKey}

如果您想使用原始连接字符串,它将是
azure eventhubs:?connectionString=Endpoint=sb://{your namespace name}.servicebus.windows.net/;SharedAccessKeyName={您的SASpolicyName};SharedAccessKey={您的SASaccessKey};EntityPath={event hub name}

您可以从Azure门户->您的事件中心命名空间->共享访问策略刀片获取
sharedAccessName
sharedAccessKey


阅读有关Camel事件中心URI的更多信息。

是。我已经看过这些文件了。我正在尝试将文件放在一个特定的位置,它应该由camel读取,并将发送到azure事件中心。我对RouteBuilderfrom(“文件:d:/InputFolderForCamel”).split().tokenize(“\n”).to(“azure”)的to()方法中使用的URI模式感到困惑-eventhubs://VEventHub1/events?SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=/U3KTW4QP3LNTE3GJPGH5GVN2PC8XR3ILB4TIQ23C4=“);它也不起作用。它显示了从(“文件:d:/InputFolderForCamel”).split().tokenize(“\n”).to(“azure事件集线器:?connectionString=Endpoint=sb://vhub1.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=/U3KTW4QP3LNT3GJPGH5GVN2PC8XR3ILB4TIQ23C4=”)未检测到的端点;两者都错了!。第一个应该是azure-eventhubs://VEventHub1/events?sharedAccessName=RootManageSharedAccessKey;sharedAccessKey=/u3kTw4qp3lntET3gJPGh5gVn2pc8Xr3iLB4tIq23c4=“第二个(连接字符串)未定义
实体路径。它应该是
Endpoint=sb://vhub1.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=/U3KTW4QP3LNTE3GJPGH5GVN2PC8XR3ILB4TIQ23C4=;EntityPath={event hub name}
from("file:d:/InputFolderForCamel").split().tokenize("\n").
  to("azure-eventhubs://[namespace/eventHubName][?options]");