Azure KeyVault и Scala 2.11 и Spark 2.4.4

#azure #apache-spark #azure-keyvault

Вопрос:

Я сталкиваюсь с проблемой с одним пакетом, когда я использую azure identity

Сначала я открыл свою искровую оболочку с 2 упаковками искровую оболочку-банки azure-identity-1.2.0.1-jre16.jar,azure-security-keyvault-secrets-4.3.2.jar

После этого я их импортировал

scala> импорт com.azure.identity.ClientSecretCredentialBuilder импортирует com.azure.identity.ClientSecretCredentialBuilder

scala> импорт com.azure.security.кейволт,секреты.SecretClientBuilder импортирует com.azure.security.кейволт,секреты.SecretClientBuilder

и вставьте мои ключи Идентификатор клиента, секрет клиента,идентификатор арендатора,имя ключа

После этого я попытался создать объект val credential1 = новый ClientSecretCredentialBuilder().tenantId(tenantId).clientId(clientId).clientSecret(clientSecret).build();

но каждый раз я сталкивался с одной и той же проблемой java.lang.Ошибка noSuchMethod: com.fasterxml.jackson.dataformat.xml.XmlMapper.setDefaultUseWrapper(Z)Lcom/fasterxml/jackson/dataformat/xml/XmlMapper; в com.azure.core.util.сериализатор.ДжексонАдаптер.(JacksonAdapter.java:78) в com.azure.core.util.сериализатор.JacksonAdapter.createDefaultSerializerAdapter(JacksonAdapter.java:113) в com.azure.identity.реализация.Идентичность.(IdentityClient.java:94) в com.azure.identity.реализация.IdentityClientBuilder.build(IdentityClientBuilder.java:113) по адресу com.azure.идентичность.Секретные данные клиента.(ClientSecretCredential.java:50) в com.azure.identity.ClientSecretCredentialBuilder.build(ClientSecretCredentialBuilder.java:62) … 49 упущено

Как я могу это решить

 
import com.azure.identity.ClientSecretCredentialBuilder
import com.azure.security.keyvault.secrets.SecretClientBuilder



def clientId        = System.getenv("AZURE_CLIENT_ID")
def clientSecret    = System.getenv("AZURE_CLIENT_SECRET")
def tenantId        = System.getenv("AZURE_TENANT_ID")
def keyvaultName    = System.getenv("azure_key_name")"



val credential1 = new ClientSecretCredentialBuilder().tenantId(tenantId).clientId(clientId).clientSecret(clientSecret).build();
val secretClient = new SecretClientBuilder().vaultUrl(s"https://${keyvaultName}.vault.azure.net/").credential(credential1).buildClient();
print(secretClient.getSecret("mysecret").getValue)
```
 

Комментарии:

1. Я думаю, что ошибка связана с совместимостью версий зависимостей .попробуйте использовать последнюю версию библиотеки jackson-dataformat-xml и, пожалуйста, обратитесь к этому документу : docs.microsoft.com/en-us/java/api/overview/azure/…