将cosmosdb sdk用于Java时出现以下异常:

Exception in thread "main" java.lang.NoSuchFieldError: ALLOW_TRAILING_COMMA
    at com.microsoft.azure.cosmosdb.internal.Utils.<clinit>(Utils.java:75)
    at com.microsoft.azure.cosmosdb.rx.internal.RxDocumentClientImpl.<clinit>(RxDocumentClientImpl.java:132)
    at com.microsoft.azure.cosmosdb.rx.AsyncDocumentClient$Builder.build(AsyncDocumentClient.java:224)
    at Program2.<init>(Program2.java:25)
    at Program2.main(Program2.java:30)


我只是想使用AsyncDocumentClient连接到CosmosDB。例外发生在那一刻。

executorService = Executors.newFixedThreadPool(100);
scheduler = Schedulers.from(executorService);

client = new AsyncDocumentClient.Builder()
          .withServiceEndpoint("[cosmosurl]")
          .withMasterKeyOrResourceToken("[mykey]")
          .withConnectionPolicy(ConnectionPolicy.GetDefault())
          .withConsistencyLevel(ConsistencyLevel.Eventual)
          .build();


我听说一些库冲突,但是找不到正确的修复程序。

谢谢!

最佳答案

请参考我的工作样本。

Java代码:

import com.microsoft.azure.cosmosdb.ConnectionPolicy;
import com.microsoft.azure.cosmosdb.ConsistencyLevel;
import com.microsoft.azure.cosmosdb.rx.AsyncDocumentClient;
public class test {

    public static void main(String[] args) throws Exception {

        AsyncDocumentClient client = new AsyncDocumentClient.Builder()
                .withServiceEndpoint("https://XXX.documents.azure.com:443/")
                .withMasterKeyOrResourceToken("XXXX")
                .withConnectionPolicy(ConnectionPolicy.GetDefault())
                .withConsistencyLevel(ConsistencyLevel.Eventual)
                .build();
        System.out.println(client);
    }
}


pom.xml

<dependencies>
    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-cosmosdb</artifactId>
        <version>2.6.4</version>
    </dependency>
    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-cosmosdb-commons</artifactId>
        <version>2.6.4</version>
    </dependency>
</dependencies>

07-24 09:21