【问题标题】:Azure Java SDK V12 - How to fix BlobServiceClientBuilder error: "java.lang.NoClassDefFoundError: com/azure/core/client/traits/TokenCredentialTrait"Azure Java SDK V12 - 如何修复 BlobServiceClientBuilder 错误:\"java.lang.NoClassDefFoundError: com/azure/core/client/traits/TokenCredentialTrait\"
【发布时间】:2022-08-16 23:44:40
【问题描述】:

我正在运行一个带有 Blob 存储连接功能的 AnyLogic 云模型,用于将数据发送到 Azure Blob 存储。

尝试调用 \'BlobServiceClientBuilder\' 方法时,我在运行时遇到错误:

import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import java.io.*;


BlobServiceClient serviceClient = new BlobServiceClientBuilder()
        .connectionString(<storageConnectionString>)
        .buildClient();

// I\'ve also tried:
BlobServiceClient serviceClient = new BlobServiceClientBuilder()
        .endpoint(<endpointString>)
        .connectionString(<storageConnectionString>)
        .buildClient();

使用有效的storageConnectionStringendpointString 作为存储帐户。

我在运行时遇到的错误如下:

java.lang.NoClassDefFoundError: com/azure/core/client/traits/TokenCredentialTrait

鉴于我没有尝试使用 SAS 令牌或凭据,并且选择了连接字符串方法(根据 Azure BlobServiceClientBuilder() documentation),我不确定是什么导致了错误。

可能相关的想法:

  • 由于网络安全安排而阻止访问:

    托管 AnyLogic Cloud 环境的虚拟机位于与存储帐户所在的虚拟网络对等的虚拟网络上。存储帐户具有网络集成和专用终结点,因此可能是配置问题,尽管错误消息并未表明这一点。

  • AnyLogic 有时有点笨拙,可能会导致问题,尽管我不知道是什么导致了这个问题。

任何建议将不胜感激。 我在这里看到了一些类似但对我来说不是解决方案的帖子 - 希望这不会得到大量的“重复” cmets,但我们开始了!

    标签: java azure azure-blob-storage anylogic azure-java-sdk


    【解决方案1】:

    BlobServiceClientBuilder 属于包com.azure.storage.blob 并实现TokenCredentialTrait 接口(除其他外)。这个接口属于另一个包com.azure.core.client.traits

    您似乎只包含了 Microsoft Azure client library for Blob Storage 的 JAR 文件,而不包含 Microsoft Azure Java Core Library 的 JAR 文件。

    请记住,AnyLogic 不会自动搜索和下载外部库的依赖项。因此,您需要检查文档中的依赖关系,并在 AnyLogic 模型中包含所有必需的 JAR。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-04
      • 2019-12-25
      • 2021-10-05
      • 2014-04-17
      • 2018-11-10
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多