0

当我使用以下内容在 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 方法,这对我来说非常有效。但喜欢更新库以获得更好的故障处理。

有没有人遇到过同样的问题?任何帮助表示赞赏!

4

2 回答 2

0

我刚刚尝试使用以下代码,它对我来说效果很好:

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();
    }

}

下面的屏幕截图显示了我引用的所有库

在此处输入图像描述

于 2013-11-14T12:21:07.837 回答
0

在它在一个小程序中工作的提示之后,我开始逐步将我的代码和库从不起作用的项目复制到一个可以工作的小项目。

我注意到当我将我的所有库复制到新项目时它停止工作。然后我看到我的 lib 目录中还有旧的 Azure 0.2.2 库。这个不在构建路径中,所以它编译得很好,除了制作一个新表外,其他地方都可以正常工作。

当我删除我的旧 azure lib 时,一切都像魅力一样工作。

感谢您的帮助。

于 2013-11-14T20:30:35.787 回答