使用 MongoDB 错误 com.mongodb.util.JSONParseException(uPDATED) 在 SpringBoot 中自定义 @Query

Posted

技术标签:

【中文标题】使用 MongoDB 错误 com.mongodb.util.JSONParseException(uPDATED) 在 SpringBoot 中自定义 @Query【英文标题】:Custom @Query in SpringBoot using MongoDB error com.mongodb.util.JSONParseException(uPDATED) 【发布时间】:2019-07-05 21:44:22 【问题描述】:

在 Java 中使用 MongoDB

请注意,这个自定义查询只是为了看看它是如何工作的,所以请不要告诉我在 hibernate 中有替代品(我已经知道了,我只想运行它)

错误

Exception in thread "main" java.lang.NullPointerException
    at repository.serviceclass.getjsondatamongo(serviceclass.java:25)
    at springbootwebsocketexample.SpringBootWebsocketExampleApplication.main(SpringBootWebsocketExampleApplication.java:58)

对于您的帮助 (serviceclass.java:25) == return userrep2.obj1(); SpringBootWebsocketExampleApplication.java:58=== JSONObject jsOn1=cc1.getjsondatamongo();

这是我的存储库.UserRepository.java

package repository;

import java.util.ArrayList;
import java.util.*;
import org.json.*;

//import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.repository.*;

import com.mongodb.connection.*;
import document.Users;
public interface UserRepository extends MongoRepository<Users,Integer> 




    @Query("db.users.find()")
    JSONObject obj1(); 

这是我的 repository.serviceclass

package repository;

import java.util.*;

import org.json.*;
import org.springframework.beans.factory.annotation.*;
import org.springframework.stereotype.*;
import document.*;
@Service
public class serviceclass 
    @Autowired
    UserRepository userrep2;
    public JSONObject getjsondatamongo()
    
        return userrep2.obj1();
    


这是我的 SpringBootWebsocketExampleApplication.java

package springbootwebsocketexample;

import org.json.JSONObject;
import org.springframework.beans.factory.annotation.*;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.*;
import org.springframework.context.annotation.*;
import org.springframework.context.annotation.*;
import org.springframework.stereotype.*;
import repository.*;
import document.Users;
import repository.*;

import java.awt.*;
import java.util.*;
import java.util.List;

import org.json.*;
@SpringBootApplication
@ComponentScan(basePackages= "resource")
@ComponentScan(basePackages= "document")
@ComponentScan(basePackages= "repository")
@ComponentScan(basePackages= "config")
public class SpringBootWebsocketExampleApplication implements CommandLineRunner 

    @Autowired
    public serviceclass cc1 ;
    public static void main(String[] args) 


        SpringApplication.run(SpringBootWebsocketExampleApplication.class, args);

    


      @Override
        public void run(String... args) throws Exception 
             List<Users> kk=new ArrayList<Users>();
             JSONObject jsOn1=cc1.getjsondatamongo();
             System.out.println(jsOn1);
        


更新 我已经更新了上面的 SpringBootWebsocketExampleApplication.java 新错误 = 引起:com.mongodb.util.JSONParseException: db.users.find()

15:45:36.951 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Included patterns for restart : []
15:45:36.954 [main] DEBUG org.springframework.boot.devtools.settings.DevToolsSettings - Excluded patterns for restart : [/spring-boot-starter/target/classes/, /spring-boot-autoconfigure/target/classes/, /spring-boot-starter-[\w-]+/, /spring-boot/target/classes/, /spring-boot-actuator/target/classes/, /spring-boot-devtools/target/classes/]
15:45:36.954 [main] DEBUG org.springframework.boot.devtools.restart.ChangeableUrls - Matching URLs for reloading : [file:/C:/Users/vaibhav.chhabra/Documents/workspace-sts-3.9.7.RELEASE/DB_Mongo_exapme_name/target/classes/]

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::       (v1.5.10.RELEASE)

2019-02-12 15:45:37.110  INFO 3048 --- [  restartedMain] s.SpringBootWebsocketExampleApplication  : Starting SpringBootWebsocketExampleApplication on VNL-VaibhavC with PID 3048 (C:\Users\vaibhav.chhabra\Documents\workspace-sts-3.9.7.RELEASE\DB_Mongo_exapme_name\target\classes started by vaibhav.chhabra in C:\Users\vaibhav.chhabra\Documents\workspace-sts-3.9.7.RELEASE\DB_Mongo_exapme_name)
2019-02-12 15:45:37.110  INFO 3048 --- [  restartedMain] s.SpringBootWebsocketExampleApplication  : No active profile set, falling back to default profiles: default
2019-02-12 15:45:37.150  INFO 3048 --- [  restartedMain] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@1599273b: startup date [Tue Feb 12 15:45:37 IST 2019]; root of context hierarchy
2019-02-12 15:45:38.032  INFO 3048 --- [  restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2019-02-12 15:45:38.038  INFO 3048 --- [  restartedMain] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2019-02-12 15:45:38.039  INFO 3048 --- [  restartedMain] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.27
2019-02-12 15:45:38.089  INFO 3048 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-02-12 15:45:38.089  INFO 3048 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 941 ms
2019-02-12 15:45:38.183  INFO 3048 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]
2019-02-12 15:45:38.185  INFO 3048 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2019-02-12 15:45:38.186  INFO 3048 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2019-02-12 15:45:38.186  INFO 3048 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2019-02-12 15:45:38.186  INFO 3048 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2019-02-12 15:45:38.448  INFO 3048 --- [  restartedMain] org.mongodb.driver.cluster               : Cluster created with settings hosts=[localhost:27017], mode=MULTIPLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500
2019-02-12 15:45:38.448  INFO 3048 --- [  restartedMain] org.mongodb.driver.cluster               : Adding discovered server localhost:27017 to client view of cluster
2019-02-12 15:45:38.489  INFO 3048 --- [localhost:27017] org.mongodb.driver.connection            : Opened connection [connectionIdlocalValue:1, serverValue:225] to localhost:27017
2019-02-12 15:45:38.490  INFO 3048 --- [localhost:27017] org.mongodb.driver.cluster               : Monitor thread successfully connected to server with description ServerDescriptionaddress=localhost:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersionversionList=[4, 0, 5], minWireVersion=0, maxWireVersion=7, maxDocumentSize=16777216, roundTripTimeNanos=459434
2019-02-12 15:45:38.491  INFO 3048 --- [localhost:27017] org.mongodb.driver.cluster               : Discovered cluster type of STANDALONE
2019-02-12 15:45:38.622  WARN 3048 --- [  restartedMain] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'springBootWebsocketExampleApplication': Unsatisfied dependency expressed through field 'cc1'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'serviceclass': Unsatisfied dependency expressed through field 'userrep2'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': Invocation of init method failed; nested exception is com.mongodb.util.JSONParseException: 
db
^
2019-02-12 15:45:38.626  INFO 3048 --- [  restartedMain] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2019-02-12 15:45:38.634  INFO 3048 --- [  restartedMain] utoConfigurationReportLoggingInitializer : 

Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
2019-02-12 15:45:38.641 ERROR 3048 --- [  restartedMain] o.s.boot.SpringApplication               : Application startup failed

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'springBootWebsocketExampleApplication': Unsatisfied dependency expressed through field 'cc1'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'serviceclass': Unsatisfied dependency expressed through field 'userrep2'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': Invocation of init method failed; nested exception is com.mongodb.util.JSONParseException: 
db
^
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) ~[spring-context-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) ~[spring-context-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
    at springbootwebsocketexample.SpringBootWebsocketExampleApplication.main(SpringBootWebsocketExampleApplication.java:65) [classes/:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_201]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_201]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_201]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_201]
    at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-1.5.10.RELEASE.jar:1.5.10.RELEASE]
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'serviceclass': Unsatisfied dependency expressed through field 'userrep2'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': Invocation of init method failed; nested exception is com.mongodb.util.JSONParseException: 
db
^
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    ... 24 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': Invocation of init method failed; nested exception is com.mongodb.util.JSONParseException: 
db
^
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    ... 37 common frames omitted
Caused by: com.mongodb.util.JSONParseException: 
db
^
    at com.mongodb.util.JSONParser.parse(JSON.java:230) ~[mongodb-driver-3.4.3.jar:na]
    at com.mongodb.util.JSONParser.parse(JSON.java:155) ~[mongodb-driver-3.4.3.jar:na]
    at com.mongodb.util.JSON.parse(JSON.java:92) ~[mongodb-driver-3.4.3.jar:na]
    at com.mongodb.util.JSON.parse(JSON.java:73) ~[mongodb-driver-3.4.3.jar:na]
    at org.springframework.data.mongodb.repository.query.StringBasedMongoQuery$ParameterBindingParser.parseAndCollectParameterBindingsFromQueryIntoBindings(StringBasedMongoQuery.java:230) ~[spring-data-mongodb-1.10.10.RELEASE.jar:na]
    at org.springframework.data.mongodb.repository.query.StringBasedMongoQuery.<init>(StringBasedMongoQuery.java:93) ~[spring-data-mongodb-1.10.10.RELEASE.jar:na]
    at org.springframework.data.mongodb.repository.query.StringBasedMongoQuery.<init>(StringBasedMongoQuery.java:72) ~[spring-data-mongodb-1.10.10.RELEASE.jar:na]
    at org.springframework.data.mongodb.repository.support.MongoRepositoryFactory$MongoQueryLookupStrategy.resolveQuery(MongoRepositoryFactory.java:169) ~[spring-data-mongodb-1.10.10.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.<init>(RepositoryFactorySupport.java:449) ~[spring-data-commons-1.13.10.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:222) ~[spring-data-commons-1.13.10.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:277) ~[spring-data-commons-1.13.10.RELEASE.jar:na]
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:263) ~[spring-data-commons-1.13.10.RELEASE.jar:na]
    at org.springframework.data.mongodb.repository.support.MongoRepositoryFactoryBean.afterPropertiesSet(MongoRepositoryFactoryBean.java:117) ~[spring-data-mongodb-1.10.10.RELEASE.jar:na]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
    ... 47 common frames omitted

【问题讨论】:

@Pijotrek 我做了他们两个仍然没有效果 我删除了我的评论并给出了答案,请尝试并告诉它是否有效 【参考方案1】:

使用@Repository 注释您的存储库类。

另外,不要这样做:

ServiceClass cc1 = new ServiceClass();

相反,这应该注入@Autowired 注解让Spring框架完成它的工作,像这样:

public class SpringBootWebsocketExampleApplication implements CommandLineRunner 

    @Autowired
    private ServiceClass serviceClass;

    public static void main(String[] args) 
        SpringApplication.run(SpringBootWebsocketExampleApplication.class, args);

    

    @Override
    public void run(String... args) throws Exception 
         List<Users> kk=new ArrayList<Users>();
         JSONObject jsOn1=cc1.getjsondatamongo();
         System.out.println(jsOn1);
    


这是春天的方法。补充阅读:https://www.baeldung.com/inversion-control-and-dependency-injection-in-spring

还有一点建议:遵循命名约定/标准。类应以大写字母命名,驼峰式命名,即UserRepositoryUserService

第二部分:

假设您的新/当前异常。我认为将查询结果解析为JSONObject 存在问题。我不确定这一点,但通常你想返回 POJO 列表,即:List&lt;User&gt;

此外,您也可以使用“内置”方法,例如 findAll() - 此处无需使用 native query。试试这个:

@Service
public class ServiceClass 
    @Autowired
    UserRepository userRepository;
    public JSONObject getjsondatamongo()
    
        return userRepository.findAll();
    

第三部分

通过一些互联网教程和阅读文档,我认为您应该简单地省略 db.collection.find() 并在您的 @Query 中提供 。像@Query("") 一样,如果你想返回整个数据。

【讨论】:

在主类中不允许注释,不知道为什么会这样,它说“该位置不允许注释@Autowired” 你确定你在正确的地方使用它吗?它应该用于字段,而不是在 main 方法中。 org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“springBootWebsocketExampleApplication”的bean时出错:通过字段“cc1”表示的依赖项不满足;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“serviceclass”的 bean 时出错:通过字段“userrep2”表示不满足的依赖关系;嵌套异常是 org.springframework.beans.factory.BeanCreationException: 创建名为 'userRepository' 的 bean 时出错:调用 init 方法失败;嵌套异常是 com.mongodb.util.JSONParseException: db.users.find() 好的,还有一个问题,但我们离我们更近了 1 步。你能用当前的堆栈跟踪编辑你的帖子吗?

以上是关于使用 MongoDB 错误 com.mongodb.util.JSONParseException(uPDATED) 在 SpringBoot 中自定义 @Query的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB安装及常见错误

com.mongodb.MongoTimeoutException:在等待连接的10000毫秒后超时

Spring Boot 中的 com.mongodb.util.JSONParseException?

MongoDb 2.6.1 错误:17444 -“旧点超出球形查询的范围”

Spring boot 启动报错:com.mongodb.MongoSocketOpenException: Exception opening socket

mongoDB使用记录