在将 Azure IoT 服务 API 与 Spring Boot 应用程序一起使用时,我遇到了一个非常神秘的问题。
我正在开发一个应用程序,该应用程序将通过 Azure IoT 服务在 Azure Blob 上查找任何文件上传通知。一旦文件由 Azure IoT 设备上传到 Azure Blob,就会通过 IoT 中心生成一个文件上传通知,我们可以通过 FileUploadNotificationReceiver 类(Azure IoT SDK 的类)捕获该通知,并且可以在应用程序中处理此事件。
这里的一些要点:
最初,我根据 Azure IoT 文档借助独立 Java 应用程序尝试并测试了文件上传通知流程,并能够在此示例应用程序中接收和处理通知。
里>但是,当我将此代码与 Spring boot 集成时,我收到一条错误消息:“服务抛出了一些神秘危险的东西,消息被放弃。”
版本详细信息 -
- Spring Boot V - 2.1.6.RELEASE
- GSON V 2.8.5
Azure IoT 服务客户端 -
- 组 ID - com.microsoft.azure.sdk.iot
- 工件 ID - iot-service-client V - 1.17.1
我注意到,当 FileUploadNotificationReceiver 类尝试解析从 IoT 中心收到的输入 JSON 时,会出现此异常消息。 iot-service-client 依赖于 GSON 依赖项。另外,我的 Spring Boot 应用程序使用 GSON 依赖项。 GSON依赖版本为2.8.5
任何有关解决此问题的帮助将不胜感激。
提前致谢。
阿维纳什·德什穆克
最佳答案
终于,我能够解决这个问题了。 在源端,使用 Azure IoT 设备端的文件上传 API 时,未正确使用 blob 名称。我使用完整的文件路径作为 blob 名称,它包含\(反斜杠)条目。
您需要更改 blob 名称,该名称与源文件名不同,并且不应包含任何 .
关于java - 从 Azure IoT 接收文件上传通知时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57141569/