Windows Azure java sdk 0.4.6,CloudTableClient缺少GetTableReference函数

时间:2013-11-14 11:04:41

标签: java azure azure-table-storage azure-java-sdk

当我使用以下内容在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 /郎/字符串;)LCOM /微软/ windowsazure /服务/表/客户/ CloudTable;

我使用以下lib:microsoft-windowsazure-api-0.4.6.jar。 所有其他调用表都完美无缺。

当我使用microsoft-windowsazure-api-0.2.2.jar时,我必须使用createTableIfNotExists方法,这对我来说非常有效。但是想更新lib以获得更好的故障处理。

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

2 个答案:

答案 0 :(得分: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();
    }

}

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

enter image description here

答案 1 :(得分:0)

在小程序中提示它之后,我开始逐步将我的代码和libs从项目中复制到一个无效的小项目中。

我注意到当我将我的libs复制到新项目时它停止工作。然后我看到我的lib目录中也有旧的Azure 0.2.2 lib。这个不是在构建路径中所以它编译得很完美,除了制作一个新表之外到处都有效。

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

感谢您的帮助。