java - 从 Azure IoT 接收文件上传通知时出错

标签 java azure spring-boot runtime-error iot

在将 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/

相关文章:

java - 如何使用 Pattern 和 Matcher 使程序输出整个单词

java - for 循环外部变量的动态添加和使用 - Selenium

java - 为什么 Eclipse 要求在枚举中声明 strictfp

Azure APIM - 如何从策略表达式内发送跟踪?

git - 如何将 GIT 存储库从 Bonobo GIT Server 导入到 Visual Studio Team Services

java - 为什么 Spring MVC 找不到我的 View 路径?

java - Mysql AbandonedConnectionCleanupThread 错误

java - SLF4J,通用日志记录,控制台输出

azure 连接的虚拟机远程桌面

java - @Size 注释似乎不适用于我的类(class)