0

我有一个从某些设备收集数据的现场网关,我正在尝试将这些数据发送到 IOThub。网关在 Camel 中,所以我必须将数据发送到 IOThub 作为一个组件。我在 Endpoint 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");

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

    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()。也许我将打开和关闭放置在错误的位置。请帮忙!!

4

1 回答 1

0

我必须添加以下依赖项

<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>
于 2016-09-15T17:17:37.567 回答