在 Azure IOThub 中使用挂在 client.open() 处的 Camel 组件;

In Azure IOThub using Camel component hanging at client.open();

我有一个从某些设备收集数据的现场网关,我正在尝试将该数据发送到 IOThub。网关在 Camel 中,所以我必须将数据作为组件发送到 IOThub。我在端点 start() 方法中添加了以下内容

        connString= "xxxxxxxx";
        protocol = IotHubClientProtocol.AMQPS;
        System.out.println("In start2");
        client = new DeviceClient(connString, protocol);
        System.out.println("In start3");
        client.open();
        System.out.println("In start4");

从 Producer 的交换中获取数据,并使用以下代码将其发送到端点中的方法

    Message msg = new Message(payloadBytes);
    Object lockobj = new Object();
    EventCallback callback = new EventCallback();         
    client.sendEventAsync(msg, callback, lockobj);

当我 运行 一条测试路线(带有 Hello world 消息)时,数据进入 Iothub 但它显示以下警告。但是当我 运行 网关时,它挂在 client.open()... 只打印 In start2 和 In start3 。在start4中没有。

Sep 15, 2016 7:06:10 AM org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory getClass
WARNING: unable to load org.bouncycastle.openssl.PEMReader
Sep 15, 2016 7:06:10 AM   org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory getClass
WARNING: unable to load org.bouncycastle.openssl.PasswordFinder
Sep 15, 2016 7:06:10 AM org.apache.qpid.proton.engine.impl.ssl.SslEngineFacadeFactory <clinit>
WARNING: unable to load bouncycastle provider

我在端点的 stop() 方法中添加了 client.close() 。也许我把打开和关闭放在错误的位置。请帮忙!!

我必须添加以下依赖项

<dependency>
<groupId>com.microsoft.azure.iot</groupId>
<artifactId>proton-j-azure-iot</artifactId>
<version>0.12.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>