Azure Java SDK - 类已经消失的地方

时间:2016-01-09 13:17:35

标签: java azure azure-management-api azure-java-sdk

我正在使用Java sdk尝试自动执行一些天蓝色的任务,比如启动服务器和关闭服务器。 我正在使用maven的java sdk 0.9.0版

           <dependency>
                <groupId>com.microsoft.azure</groupId>
                <artifactId>azure-svc-mgmt</artifactId>
                <version>0.9.0</version>
            </dependency>   

            <dependency>
                <groupId>com.microsoft.azure</groupId>
                <artifactId>azure-svc-mgmt-compute</artifactId>
                <version>0.9.0</version>
            </dependency>

此代码在eclipse中成功编译并运行

 package com.services.servers.operations.azure;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import com.microsoft.windowsazure.Configuration;
import com.microsoft.windowsazure.core.utils.KeyStoreType;
import com.microsoft.windowsazure.exception.ServiceException;
import com.microsoft.windowsazure.management.compute.ComputeManagementClient;
import com.microsoft.windowsazure.management.compute.ComputeManagementService;
import com.microsoft.windowsazure.management.compute.VirtualMachineOperations;
import com.microsoft.windowsazure.management.configuration.ManagementConfiguration;

public class AzureTest {

    String uri = "https://management.core.windows.net/";
    String subscriptionId = "dasdas9-86da-4343-a1f4-24c20864e166";
    String keyStoreLocation = "C:\\Users\\test\\Desktop\\azure\\testKeystore.jks";
    String keyStorePassword = "password";

    public boolean startVirtualMachine(String serviceName, String deploymentName, String virtualMachineName){

        boolean isSuccess = true;

        try {            

            VirtualMachineOperations virtualMachineOperations = null;

            Configuration config = ManagementConfiguration.configure(
                        new URI(uri), 
                          subscriptionId,
                          keyStoreLocation, 
                          keyStorePassword, 
                          KeyStoreType.jks 
                      );

            ComputeManagementClient computeManagementClient = ComputeManagementService.create(config);

            virtualMachineOperations = computeManagementClient.getVirtualMachinesOperations();

            virtualMachineOperations.beginStarting(serviceName, deploymentName, virtualMachineName);

        } catch (IOException e) {
            System.out.println("An IOException has occured. Exception: " +e);
            isSuccess = false;
        }  catch (ServiceException e) {
            System.out.println("A ServiceException has occured. Exception: " + e);
            isSuccess = false;
        } catch (URISyntaxException e) {
            System.out.println("A URISyntaxException has occured. Exception: " + e);
            isSuccess = false;
        }         


        return isSuccess;
    }

}

当我升级到最新版本的sdk-0.9.1时,以下类别不再存在

import com.microsoft.windowsazure.Configuration;
import com.microsoft.windowsazure.core.utils.KeyStoreType;
import com.microsoft.windowsazure.exception.ServiceException;
import com.microsoft.windowsazure.management.configuration.ManagementConfiguration;

我无法在网上找到任何信息来说明这些课程的去处 - 是否已被弃用或更多用于其他课程

如果有人知道我应该选择什么课程,或者他们可能转移到哪些图书馆 - 这将是很棒的 或者,如果有人可以建议对上述代码进行任何改进以启动服务器,那将非常感激

由于 达明

2 个答案:

答案 0 :(得分:1)

我尝试重现该问题,我收到了错误Failed to read artifact descriptor for com.microsoft.azure:azure-svc-mgmt...jar:0.9.0

问题似乎是由maven存储库导致下载Microsoft Azure SDK for Management版本0.9.1的依赖项。

我建议你现在可以使用版本0.9.0

如果您必须使用版本0.9.1,您可以在pom.xml文件中手动添加库及其依赖项的完整maven列表,或者您可以下载&amp;手动将所有库文件添加到项目类路径中。

答案 1 :(得分:1)

转到http://go.microsoft.com/fwlink/?linkid=690320&clcid=0x409,下载文件&#39; PackageForAzureLibrariesForJava.zip&#39;并将这些jar文件放到项目构建路径中,或者如果使用maven,则在pom文件中添加依赖项。我在当地测试了这个。它有效。