此问题是由于使用了不正确的Azure Java SDK库引起的。当我在下面的文件pom.xml中使用Maven依赖项时,我重现了相同的异常。
<dependency> <groupId>com.microsoft.azure</groupId> <artifactId>azure-mgmt-compute</artifactId> <version>0.8.3</version></dependency>
提供VM重新启动功能的库需要两个参数:
resource group name和
vm name。但是库的API
azure-mgmt-compute用于Azure资源管理。
若要重新启动VM,
azure-svc-mgmt-compute如果使用了JKS证书,则需要使用库的API 进行Azure Service
Management。类
VirtualMachineOperations提供同名函数
restart需要三个参数:
servicename,
deployment name和
vm name。您可以从Azure门户上的Cloud
Service仪表板中找到这些名称。在您的问题代码中,
vm name应当为“ sqlvm”。
正确的maven pom.xml用于依赖关系,如下所示:
<dependency> <groupId>com.microsoft.azure</groupId> <artifactId>azure-svc-mgmt</artifactId> <version>0.8.3</version></dependency><dependency> <groupId>com.microsoft.azure</groupId> <artifactId>azure-svc-mgmt-compute</artifactId> <version>0.8.3</version></dependency>
和下面的代码
virtualMachinesOperations.restart("<service name: sqlvm>", "<deployment name: sqlvm>", "<vm name: sqlvm>");通过在路径JAVA_HOME / bin中使用Java Keytool进行genkeypair的以下步骤:
keytool -genkeypair -alias keyfile -keyalg RSA -keystore <KeyStore.jks> -keysize 2048 -storepass "<password>"keytool -v -export -file <KeyStore.cer> -keystore KeyStore.jks -alias keyfile
我的代码:
String uri = "https://management.core.windows.net/";String subscriptionId = "<subscription_id>";String keyStoreLocation = "KeyStore.jks";String keyStorePassword = "<password>";Configuration config = ManagementConfiguration.configure( new URI(uri), subscriptionId, keyStoreLocation, // the file path to the JKS keyStorePassword, // the password for the JKS KeyStoreType.jks // flags that I'm using a JKS keystore ); ComputeManagementClient computeManagementClient = ComputeManagementService.create(config);VirtualMachineOperations virtualMachinesOperations = computeManagementClient.getVirtualMachinesOperations();virtualMachinesOperations.restart("petercore", "petercore", "petercore");


