Windows Azure Java SDK 0.4.6, CloudTableClient отсутствует функция GetTableReference

Когда я использую следующее, чтобы создать таблицу в Azure (Java)

CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);
CloudTableClient tableClient = storageAccount.createCloudTableClient();
CloudTable table = tableClient.getTableReference("people");
table.createIfNotExist();

я получаю следующее исключение:

java.lang.NoSuchMethodError: com.microsoft.windowsazure.services.table.client.CloudTableClient.getTableReference (Ljava / lang / String;) Lcom / microsoft / windowsazure / services / table / client / CloudTable;

Я использую следующую библиотеку: microsoft-windowsazure-api-0.4.6.jar. Все остальные вызовы к столу работают отлично.

Когда я использую microsoft-windowsazure-api-0.2.2.jar, мне приходилось использовать метод createTableIfNotExists, и это отлично сработало для меня. Но хотелось бы обновить библиотеку для лучшей обработки ошибок.

Кто-нибудь сталкивался с такой же проблемой? Любая помощь приветствуется!

2 ответа

Решение

Я просто попытался с помощью следующего кода, и он работал нормально для меня:

package TestPackage;
import java.net.URISyntaxException;
import java.security.InvalidKeyException;
import com.microsoft.windowsazure.services.core.storage.*;
import com.microsoft.windowsazure.services.table.client.*;

public class TestClass {
    public static void main(String[] args) throws URISyntaxException, StorageException, InvalidKeyException {
        CloudStorageAccount storageAccount =
                CloudStorageAccount.parse("UseDevelopmentStorage=true");

            // Create the table client.
            CloudTableClient tableClient = storageAccount.createCloudTableClient();

            // Create the table if it doesn't exist.
            String tableName = "people";
            CloudTable table = tableClient.getTableReference(tableName);
            table.createIfNotExist();
            //tableClient.createTableIfNotExists(tableName);

            System.console().readLine();
    }

}

и на скриншоте ниже показаны все библиотеки, на которые я ссылался

введите описание изображения здесь

После подсказки, что это работает в небольшой программе, я начал шаг за шагом копировать мой код и библиотеки из проекта, который не работал, в небольшой проект, который работает.

Я заметил, что когда я скопировал все свои библиотеки в новый проект, он перестал работать. Затем я увидел, что у меня есть старая библиотека Azure 0.2.2 в моей директории lib. Этот не был в пути сборки, поэтому он скомпилирован отлично и везде работал, кроме создания новой таблицы.

Когда я удаляю свою старую лазурную библиотеку, все работает как шарм.

Спасибо за помощь.

Другие вопросы по тегам