使用MongodB进行Spring启动,但连接到Azure Cosmos

时间:2017-12-29 18:57:30

标签: mongodb azure spring-boot azure-cosmosdb

我有春季Mongodb应用程序,我想把它带到Azure。所以,我决定使用Cosmos db。我对application.properties文件进行了以下更改 spring.data.mongodb.uri = mongodb:// [用户名]:[密码] @ [dbname] .documents.azure.com:10255 /?ssl = true spring.data.mongodb.database = DBNAME

我遇到以下异常: ActivityId:25611363-0000-0000-0000-000000000000,请求URI:/ apps / bbbd93b0-83ee-44a2-9015-ca7226457764 / services / 63c75889-e342-42b3-81b0-4851cae426d7 / partitions / 89ba02e8-b034-4b75-b8a0- 57194d79f785 / replicas / 131587440168033880p,RequestStats :,SDK:Microsoft.Azure.Documents.Common / 1.19.121.4'在服务器上dz5prdddc02-docdb-1.documents.azure.com:10255。完整的回应是{" _t" :" OKMongoResponse"," ok" :0,"代码" :2," errmsg" :"消息:{\"错误\":[\"太多'包括'策略中指定的路径(106)。最多允许100个。\"]} \ r \ nActivityId:25611363-0000-0000-0000-000000000000,请求URI:/ apps / bbbd93b0-83ee-44a2-9015-ca7226457764 / services / 63c75889-e342 -42b3-81b0-4851cae426d7 / partitions / 89ba02e8-b034-4b75-b8a0-57194d79f785 / replicas / 131587440168033880p,RequestStats :,SDK:Microsoft.Azure.Documents.Common / 1.19.121.4"," $ err& #34; :"消息:{\"错误\":[\"太多'包括'策略中指定的路径(106)。最多允许100个。\"]} \ r \ nActivityId:25611363-0000-0000-0000-000000000000,请求URI:/ apps / bbbd93b0-83ee-44a2-9015-ca7226457764 / services / 63c75889-e342 -42b3-81b0-4851cae426d7 / partitions / 89ba02e8-b034-4b75-b8a0-57194d79f785 / replicas / 131587440168033880p,RequestStats :,SDK:Microsoft.Azure.Documents.Common / 1.19.121.4" }     在org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:107)〜[spring-data-mongodb-1.10.9.RELEASE.jar:na]     在org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.createIndex(MongoPersistentEntityIndexCreator.java:162)〜[spring-data-mongodb-1.10.9.RELEASE.jar:na]     在org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.checkForAndCreateIndexes(MongoPersistentEntityIndexCreator.java:133)〜[spring-data-mongodb-1.10.9.RELEASE.jar:na]     在org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.checkForIndexes(MongoPersistentEntityIndexCreator.java:125)〜[spring-data-mongodb-1.10.9.RELEASE.jar:na]     在org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator。(MongoPersistentEntityIndexCreator.java:91)〜[spring-data-mongodb-1.10.9.RELEASE.jar:na]     在org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator。(MongoPersistentEntityIndexCreator.java:68)〜[spring-data-mongodb-1.10.9.RELEASE.jar:na]     在org.springframework.data.mongodb.core.MongoTemplate。(MongoTemplate.java:233)〜[spring-data-mongodb-1.10.9.RELEASE.jar:na]     在org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration.mongoTemplate(MongoDataAutoConfiguration.java:101)〜[spring-boot-autoconfigure-1.5.9.RELEASE.jar:1.5.9.RELEASE]     at org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration $$ EnhancerBySpringCGLIB $$ 7c4704f8.CGLIB $ mongoTemplate $ 1()〜[spring-boot-autoconfigure-1.5.9.RELEASE.jar:1.5.9.RELEASE]     at org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration $$ EnhancerBySpringCGLIB $$ 7c4704f8 $$ FastClassBySpringCGLIB $$ e0a4d3c3.invoke()〜[spring-boot-autoconfigure-1.5.9.RELEASE.jar:1.5.9。发布]     在org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)~ [spring-core-4.3.13.RELEASE.jar:4.3.13.RELEASE]     在org.springframework.context.annotation.ConfigurationClassEnhancer $ BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:358)〜[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]     at org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration $$ EnhancerBySpringCGLIB $$ 7c4704f8.mongoTemplate()〜[spring-boot-autoconfigure-1.5.9.RELEASE.jar:1.5.9.RELEASE]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)〜[na:1.8.0_151]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[na:1.8.0_151]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[na:1.8.0_151]     在java.lang.reflect.Method.invoke(Method.java:498)〜[na:1.8.0_151]     在org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)〜[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE]     ...省略了47个常见帧 引起:com.mongodb.MongoCommandException:命令失败,错误2:'消息:{"错误":["太多'包括'策略中指定的路径(106)。最多允许100个。"]} ActivityId:25611363-0000-0000-0000-000000000000,请求URI:/ apps / bbbd93b0-83ee-44a2-9015-ca7226457764 / services / 63c75889-e342-42b3-81b0-4851cae426d7 / partitions / 89ba02e8-b034-4b75-b8a0- 57194d79f785 / replicas / 131587440168033880p,RequestStats :,SDK:Microsoft.Azure.Documents.Common / 1.19.121.4'在服务器上dz5prdddc02-docdb-1.documents.azure.com:10255。完整的回应是{" _t" :" OKMongoResponse"," ok" :0,"代码" :2," errmsg" :"消息:{\"错误\":[\"太多'包括'策略中指定的路径(106)。最多允许100个。\"]} \ r \ nActivityId:25611363-0000-0000-0000-000000000000,请求URI:/ apps / bbbd93b0-83ee-44a2-9015-ca7226457764 / services / 63c75889-e342 -42b3-81b0-4851cae426d7 / partitions / 89ba02e8-b034-4b75-b8a0-57194d79f785 / replicas / 131587440168033880p,RequestStats :,SDK:Microsoft.Azure.Documents.Common / 1.19.121.4"," $ err& #34; :"消息:{\"错误\":[\"太多'包括'策略中指定的路径(106)。最多允许100个。\"]} \ r \ nActivityId:25611363-0000-0000-0000-000000000000,请求URI:/ apps / bbbd93b0-83ee-44a2-9015-ca7226457764 / services / 63c75889-e342 -42b3-81b0-4851cae426d7 / partitions / 89ba02e8-b034-4b75-b8a0-57194d79f785 / replicas / 131587440168033880p,RequestStats :,SDK:Microsoft.Azure.Documents.Common / 1.19.121.4" }     在com.mongodb.connection.ProtocolHelper.getCommandFailureException(ProtocolHelper.java:115)〜[mongodb-driver-core-3.4.3.jar:na]     在com.mongodb.connection.CommandProtocol.execute(CommandProtocol.java:114)〜[mongodb-driver-core-3.4.3.jar:na]     在com.mongodb.connection.DefaultServer $ DefaultServerProtocolExecutor.execute(DefaultServer.java:168)~ [mongodb-driver-core-3.4.3.jar:na]     在com.mongodb.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:289)〜[mongodb-driver-core-3.4.3.jar:na]     在com.mongodb.connection.DefaultServerConnection.command(DefaultServerConnection.java:176)〜[mongodb-driver-core-3.4.3.jar:na]     在com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:216)~ [mongodb-driver-core-3.4.3.jar:na]     在com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:207)〜[mongodb-driver-core-3.4.3.jar:na]     在com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:146)〜[mongodb-driver-core-3.4.3.jar:na]     在com.mongodb.operation.CommandOperationHelper.executeWrappedCommandProtocol(CommandOperationHelper.java:139)〜[mongodb-driver-core-3.4.3.jar:na]     在com.mongodb.operation.CreateIndexesOperation $ 1.call(CreateIndexesOperation.java:150)~ [mongodb-driver-core-3.4.3.jar:na]     在com.mongodb.operation.CreateIndexesOperation $ 1.call(CreateIndexesOperation.java:144)〜[mongodb-driver-core-3.4.3.jar:na]     在com.mongodb.operation.OperationHelper.withConnectionSource(OperationHelper.java:426)〜[mongodb-driver-core-3.4.3.jar:na]     在com.mongodb.operation.OperationHelper.withConnection(OperationHelper.java:417)〜[mongodb-driver-core-3.4.3.jar:na]     在com.mongodb.operation.CreateIndexesOperation.execute(CreateIndexesOperation.java:144)〜[mongodb-driver-core-3.4.3.jar:na]     在com.mongodb.operation.CreateIndexesOperation.execute(CreateIndexesOperation.java:71)〜[mongodb-driver-core-3.4.3.jar:na]     在com.mongodb.Mongo.execute(Mongo.java:845)〜[mongodb-driver-3.4.3.jar:na]     在com.mongodb.Mongo $ 2.execute(Mongo.java:828)〜[mongodb-driver-3.4.3.jar:na]     在com.mongodb.DBCollection.createIndex(DBCollection.java:1618)〜[mongodb-driver-3.4.3.jar:na]     在org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexCreator.createIndex(MongoPersistentEntityIndexCreator.java:142)〜[spring-data-mongodb-1.10.9.RELEASE.jar:na]     ...省略了63个常见帧

1 个答案:

答案 0 :(得分:2)

此错误 - “太多'包含'策略中指定的路径(106)。允许最多100个。“ - 在帐户上创建多个索引并超过限制(100)时发生。但是,您不必创建大多数这些索引(如果有),因为与MongoDB相比,CosmosDB会自动索引文档中的所有路径,因此不需要显式索引。尝试排除createIndex / ensureIndex命令及其Spring等价物,除非它们与创建唯一索引有关(你需要createIndex,因为我们不知道你想要这个约束的字段)。