2015-12-28 2 views
1

Я используюMongoDB ошибка BSON Объект

GroupBy groupBy = GroupBy.key("Dimension","frequency") 
      .initialDocument("{ value: 0 }") 
      .reduceFunction("function(obj, result) { " + 
          " result.Dimension = obj.Dimension; " +  
          " result.frequency = obj.frequency; " + 
          " result.value += obj.value; " + 
          "}"); 

с зависимостями

<dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-mongodb</artifactId> 
     <version>1.0.4.RELEASE</version> 
    </dependency> 

<dependency> 
     <groupId>org.mongodb</groupId> 
     <artifactId>mongo-java-driver</artifactId> 
     <version>2.9.1</version> 
    </dependency> 

Он работает отлично с MongoDB версии 3.0.3

Но бросает ошибку, когда я использую MongoDB версию 3.2.0

исключение

HTTP Status 500 - org.apache.cxf.interceptor.Fault: Command execution failed: Error [Failure to enumerate object], Command = { "group" : { "key" : { "Dimension" : 1 , "frequency" : 1} , "$reduce" : "function(obj, result) { result.Dimension = obj.Dimension; result.frequency = obj.frequency; result.value += obj.value; }" , "initial" : { "value" : 0} , "ns" : "projectentity" , "cond" : { "api_source_name" : { "$in" : [ "Score1"]} , "category" : { "$in" : [ "Score1"]} , "dataset" : { "$in" : [ "Score"]} , "active_flag" : { "$in" : [ "y"]}}}}; nested exception is com.mongodb.CommandResult$CommandFailure: command failed [group]: { "serverUsed" : "/127.0.0.1:27017" , "ok" : 0.0 , "errmsg" : "Failure to enumerate object" , "code" : 139} 

type Exception report 

message org.apache.cxf.interceptor.Fault: Command execution failed: Error [Failure to enumerate object], Command = { "group" : { "key" : { "Dimension" : 1 , "frequency" : 1} , "$reduce" : "function(obj, result) { result.Dimension = obj.Dimension; result.frequency = obj.frequency; result.value += obj.value; }" , "initial" : { "value" : 0} , "ns" : "projectentity" , "cond" : { "api_source_name" : { "$in" : [ "Score1"]} , "category" : { "$in" : [ "Score1"]} , "dataset" : { "$in" : [ "Score"]} , "active_flag" : { "$in" : [ "y"]}}}}; nested exception is com.mongodb.CommandResult$CommandFailure: command failed [group]: { "serverUsed" : "/127.0.0.1:27017" , "ok" : 0.0 , "errmsg" : "Failure to enumerate object" , "code" : 139} 

description The server encountered an internal error that prevented it from fulfilling this request. 

exception 

java.lang.RuntimeException: org.apache.cxf.interceptor.Fault: Command execution failed: Error [Failure to enumerate object], Command = { "group" : { "key" : { "Dimension" : 1 , "frequency" : 1} , "$reduce" : "function(obj, result) { result.Dimension = obj.Dimension; result.frequency = obj.frequency; result.value += obj.value; }" , "initial" : { "value" : 0} , "ns" : "projectentity" , "cond" : { "api_source_name" : { "$in" : [ "Score1"]} , "category" : { "$in" : [ "Score1"]} , "dataset" : { "$in" : [ "Score"]} , "active_flag" : { "$in" : [ "y"]}}}}; nested exception is com.mongodb.CommandResult$CommandFailure: command failed [group]: { "serverUsed" : "/127.0.0.1:27017" , "ok" : 0.0 , "errmsg" : "Failure to enumerate object" , "code" : 139} 
    org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:116) 
    org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:322) 
    org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122) 
    org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211) 
    org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213) 
    org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154) 
    org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129) 
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187) 
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:115) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:618) 
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:166) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 

root cause 

org.apache.cxf.interceptor.Fault: Command execution failed: Error [Failure to enumerate object], Command = { "group" : { "key" : { "Dimension" : 1 , "frequency" : 1} , "$reduce" : "function(obj, result) { result.Dimension = obj.Dimension; result.frequency = obj.frequency; result.value += obj.value; }" , "initial" : { "value" : 0} , "ns" : "projectentity" , "cond" : { "api_source_name" : { "$in" : [ "Score1"]} , "category" : { "$in" : [ "Score1"]} , "dataset" : { "$in" : [ "Score"]} , "active_flag" : { "$in" : [ "y"]}}}}; nested exception is com.mongodb.CommandResult$CommandFailure: command failed [group]: { "serverUsed" : "/127.0.0.1:27017" , "ok" : 0.0 , "errmsg" : "Failure to enumerate object" , "code" : 139} 
    org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:162) 
    org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:128) 
    org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:167) 
    org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:94) 
    org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) 
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) 
    org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106) 
    org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262) 
    org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122) 
    org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211) 
    org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213) 
    org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154) 
    org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129) 
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187) 
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:115) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:618) 
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:166) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 

root cause 

org.springframework.dao.InvalidDataAccessApiUsageException: Command execution failed: Error [Failure to enumerate object], Command = { "group" : { "key" : { "Dimension" : 1 , "frequency" : 1} , "$reduce" : "function(obj, result) { result.Dimension = obj.Dimension; result.frequency = obj.frequency; result.value += obj.value; }" , "initial" : { "value" : 0} , "ns" : "projectentity" , "cond" : { "api_source_name" : { "$in" : [ "Score1"]} , "category" : { "$in" : [ "Score1"]} , "dataset" : { "$in" : [ "Score"]} , "active_flag" : { "$in" : [ "y"]}}}}; nested exception is com.mongodb.CommandResult$CommandFailure: command failed [group]: { "serverUsed" : "/127.0.0.1:27017" , "ok" : 0.0 , "errmsg" : "Failure to enumerate object" , "code" : 139} 
    org.springframework.data.mongodb.core.MongoTemplate.handleCommandError(MongoTemplate.java:1566) 
    org.springframework.data.mongodb.core.MongoTemplate.group(MongoTemplate.java:1068) 
    com.org.project.repo.repositories.repository.getMetadataDetails(repository.java:253) 
    com.org.project.repo.business.repoDataBoEntity.getMetadataDetails(repoDataBoEntity.java:580) 
    com.org.project.endpoints.PublicData.getMetadataDetails(PublicData.java:304) 
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    java.lang.reflect.Method.invoke(Method.java:483) 
    org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180) 
    org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) 
    org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:167) 
    org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:94) 
    org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) 
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) 
    org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106) 
    org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262) 
    org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122) 
    org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211) 
    org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213) 
    org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154) 
    org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129) 
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187) 
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:115) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:618) 
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:166) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 

root cause 

com.mongodb.CommandResult$CommandFailure: command failed [group]: { "serverUsed" : "/127.0.0.1:27017" , "ok" : 0.0 , "errmsg" : "Failure to enumerate object" , "code" : 139} 
    com.mongodb.CommandResult.getException(CommandResult.java:88) 
    com.mongodb.CommandResult.throwOnError(CommandResult.java:134) 
    org.springframework.data.mongodb.core.MongoTemplate.handleCommandError(MongoTemplate.java:1560) 
    org.springframework.data.mongodb.core.MongoTemplate.group(MongoTemplate.java:1068) 
    com.org.project.repo.repositories.repository.getMetadataDetails(repository.java:253) 
    com.org.project.repo.business.repoDataBoEntity.getMetadataDetails(repoDataBoEntity.java:580) 
    com.org.project.endpoints.PublicData.getMetadataDetails(PublicData.java:304) 
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    java.lang.reflect.Method.invoke(Method.java:483) 
    org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180) 
    org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) 
    org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:167) 
    org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:94) 
    org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) 
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) 
    org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106) 
    org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262) 
    org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122) 
    org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211) 
    org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213) 
    org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154) 
    org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129) 
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187) 
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:115) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:618) 
    org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:166) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 

note The full stack trace of the root cause is available in the Apache Tomcat/8.0.9 logs. 
Apache Tomcat/8.0.9 

Пожалуйста, помогите мне. Что я делаю не так?

Заранее спасибо.

+0

org.apache.cxf.interceptor.Fault: Выполнение команды не выполнено: Ошибка [errmsg: "Не удалось вызвать функцию уменьшения группы: :: вызвано by :: 2 Попытка доступа к недействительному объекту BSON в области JS "], Command =; Вложенное исключение - com.mongodb.CommandResult $ CommandFailure: команда failed [group]: {"serverUsed": "127.0.0.1/127.0.0.1:27017", "waitedMS": 0, "ok": 0.0, "errmsg": "errmsg: \" Не удалось вызвать функцию уменьшения группы: :: вызвано :: 2 Попытка доступа к недействительному объекту BSON в области видимости JS \ "", "code": 2} – user5339108

+0

любезно проверьте версию драйвера –

ответ

0

не все, что вы сделали, это была ошибка, введенная в 3.2, исправленная в 3.4. Это немного нас устраивает при обновлении с 2.6 -> 3.0 -> 3.2 -> 3.4

Смежные вопросы