#java #mongodb #spring-boot #postman #rest
#java #mongodb #весенняя загрузка #почтальон #rest
Вопрос:
Сервер успешно запускается и также принимает данные, но когда я извлекаю данные, я получаю следующую ошибку:
o.a.c.c.C.[.[.[/].[ DispatcherServlet]: Servlet.service() для сервлета [DispatcherServlet] в контексте
с path [] выдал исключение [Ошибка обработки запроса; вложенным исключением является
org.springframework.data.mongodb.Исключение без рубрикации mongodbexception: запрос выполнен с кодом ошибки 2 и
сообщением ‘Field ‘locale’ недопустимо в: { locale: «Tax»}’ на локальном хосте сервера: 27017; вложенным исключением является исключение
com.mongodb.MongoQueryException: запрос выполнен с кодом ошибки 2 и сообщением ‘Field ‘locale’
недопустимо в: {locale: «Tax»}’ на локальном хосте сервера: 27017] с основной причинойисключение com.mongodb.MongoQueryException: запрос выполнен с ошибкой с кодом ошибки 2 и сообщением об ошибке ‘Поле ‘locale’
недопустимо в: { locale: «Tax» }’ на сервере localhost:27017при com.mongodb.internal.operation.FindOperation $1.вызовите (FindOperation.java:635) ~ [mongodb-driver-core- 4.0.5.jar:na] в com.mongodb.internal.operation.FindOperation $1.вызовите (FindOperation.java:625) ~ [mongodb-driver-core-4.0.5.jar:na] в com.mongodb.internal.operation.OperationHelper.с источником readconnectionsource(OperationHelper.java:462) ~ [mongodb-driver-core-4.0.5.jar: na] в com.mongodb.internal.operation.FindOperation.execute(FindOperation.java:625) ~[mongodb-driver-core-4.0.5.jar:na] при com.mongodb.internal.operation.FindOperation.execute(FindOperation.java:77) ~[mongodb-driver-core-4.0.5.jar:na] в com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:190) ~ [mongodb-driver-sync-4.0.5.jar:na] на com.mongodb.client.internal.MongoIterableImpl.execute(MongoIterableImpl.java:135) ~ [mongodb-driver-sync-4.0.5.jar:na] на com.mongodb.client.internal.MongoIterableImpl.iterator(MongoIterableImpl.java:92) ~ [mongodb-driver-sync-4.0.5.jar:na] в org.springframework.data.mongodb.core.MongoTemplate.executeFindMultiInternal(MongoTemplate.java:2782) ~[spring-data-mongodb-3.0.3.RELEASE.jar:3.0.3.RELEASE] в организации.springframework.data.mongodb.core.MongoTemplate.Найдите (MongoTemplate.java: 2518) ~[spring-data-mongodb-3.0.3.RELEASE.jar:3.0.3.RELEASE] в org.springframework.data.mongodb.core.MongoTemplate.Найдите (MongoTemplate.java: 2500) ~[spring-data-mongodb-3.0.3.RELEASE.jar:3.0.3.RELEASE] в org.springframework.data.mongodb.core.MongoTemplate.find(MongoTemplate.java:856) ~[spring-data-mongodb-3.0.3.RELEASE.jar:3.0.3.RELEASE] в org.springframework.data.mongodb.repository.support.SimpleMongoRepository.findAll(SimpleMongoRepository.java:383) ~[spring-data-mongodb-3.0.3.RELEASE.jar:3.0.3.RELEASE] в org.springframework.data.mongodb.repository.support.SimpleMongoRepository.findAll(SimpleMongoRepository.java:205 ) ~[spring-data-mongodb-3.0.3.RELEASE.jar:3.0.3.RELEASE] в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) ~ [na: na] в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java: 62) ~ [na: na] в java.base/jdk.internal.отражать.Делегирование methodaccessorimpl.invoke(делегирование methodaccessorimpl.java:43) ~[na:na] в java.base/java.lang.reflect.Метод.invoke(Method.java:567) ~ [na:na] в org.springframework.data.repository.core.support.Вызов ImplementationInvocationMetadata.invoke(вызов ImplementationInvocationMetadata.java: 72) ~[spring-data-commons-2.3.3.RELEASE.jar:2.3.3.RELEASE] в org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:382) ~[spring-data-commons-2.3.3.RELEASE.jar:2.3.3.RELEASE] в org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:205) ~[spring-data-commons-2.3.3.RELEASE.jar:2.3.3.RELEASE] в org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:549) ~[spring-data-commons-2.3.3.RELEASE.jar:2.3.3.RELEASE] в org.springframework.aop.framework.ReflectiveMethodInvocation.продолжить (ReflectiveMethodInvocation.java: 186) ~ [spring-aop-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.springframework.data.repository.core.support.queryexecutormethod interceptor.Выполните вызов (queryexecutormethod Interceptor.java:155) ~[spring-data-commons-2.3.3.RELEASE.jar:2.3.3.RELEASE] в организации.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:130 ) ~[spring-data-commons-2.3.3.RELEASE.jar:2.3.3.RELEASE] в org.springframework.aop.framework.ReflectiveMethodInvocation.продолжить (ReflectiveMethodInvocation.java: 186) ~ [spring-aop-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.springframework.data.projection.DEFAULTMETHOD invokingmethod interceptor.invoke(defaultmethod invokingmethod interceptor.java:80) ~[spring-data-commons-2.3.3.RELEASE.jar:2.3.3.RELEASE] в org.springframework.aop.framework.ReflectiveMethodInvocation.продолжить (ReflectiveMethodInvocation.java: 186) ~ [spring-aop-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95) ~[spring-aop-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.springframework.aop.framework.ReflectiveMethodInvocation.продолжить (ReflectiveMethodInvocation.java: 186) ~ [spring-aop-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~ [spring-aop-5.2.8.RELEASE.jar:5.2.8.RELEASE] в com.sun.proxy.$Proxy58.findAll (неизвестный источник) ~ [na: na] в сети.пример.TaxEngine.Ресурсы.TaxController.getTaxs(TaxController.java: 31) ~ [classes /:na] в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(собственный метод) ~ [na: na] в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~ [na: na] в java .база/jdk.внутренняя.отразить.Делегирование methodaccessorimpl.invoke(делегирование methodaccessorimpl.java:43) ~[na:na] в java.base/java.lang.reflect.Метод.invoke(Method.java:567) ~[na: na] в org.springframework.web.method.support.Метод InvocableHandlerMethod.Выполните вызов (InvocableHandlerMethod.java: 190) ~ [spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.springframework.web.method.support.Вызываемый метод обработки данных.invokeForRequest(InvocableHandlerMethod.java:138) ~ [spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java: 105) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.springframework.web.servlet.mvc.method.аннотация.RequestMappingHandlerAdapter.invokeHandlerMethod (RequestMappingHandlerAdapter.java:878) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE] в организации.springframework.web.servlet.mvc.метод.аннотация.RequestMappingHandlerAdapter.handleInternal (RequestMappingHandlerAdapter.java:792) ~ [spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle (AbstractHandlerMethodAdapter.java: 87) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java: 1040) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java: 943) ~ [spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.springframework.web.servlet.FrameworkServlet.ProcessRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.springframework.web.servlet.FrameworkServlet.doGet (FrameworkServlet.java:898) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE] в javax.servlet.http.HttpServlet.service (HttpServlet.java:626) ~[tomcat-embed-core-9.0.37.jar:4.0.FR ] в org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.2.8.RELEASE.jar:5.2.8.RELEASE] на javax.servlet.http.HttpServlet.service (HttpServlet.java:733) ~[tomcat-embed-core-9.0.37.jar:4.0.FR ] в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:231) ~ [tomcat-embed-core-9.0.37.jar:9.0.37] в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 166) ~ [tomcat-embed-core-9.0.37.jar:9.0.37] в org.apache.tomcat.websocket.сервер.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.37.jar:9.0.37] в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-core-9.0.37.jar:9.0.37] в org.apache.catalina.core.ApplicationFilterChain.доФильтр (ApplicationFilterChain.java: 166) ~ [tomcat-embed-core-9.0.37.jar:9.0.37] в org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java: 100) ~ [spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.springframework.web.filter.OncePerRequestFilter.доФильтр (OncePerRequestFilter.java: 119) ~ [spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.37.jar: 9.0.37] в org.apache.catalina.core.ApplicationFilterChain.доФильтр (ApplicationFilterChain.java: 166) ~ [tomcat-embed-core-9.0.37.jar:9.0.37] в org.springframework.web.filter.FormContentFilter.Внутренний фильтр (FormContentFilter.java: 93) ~ [spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.springframework.web.filter.OncePerRequestFilter.доФильтр (OncePerRequestFilter.java: 119) ~ [spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-core-9.0.37.jar:9.0.37] в org.apache.catalina.core.ApplicationFilterChain.доФильтр (ApplicationFilterChain.java: 166) ~ [tomcat-embed-core-9.0.37.jar:9.0.37] в org.springframework.web.filter.CharacterEncodingFilter.Внутренний фильтр (CharacterEncodingFilter.java: 201) ~ [spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java: 119) ~ [spring-web-5.2.8.RELEASE.jar:5.2.8.RELEASE] в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.37.jar: 9.0.37] в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 166) ~ [tomcat-embed-core-9.0.37.jar:9.0.37] в org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.37.jar:9.0.37] в org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java: 96) ~ [tomcat-embed-core-9.0.37.jar:9.0.37] в org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java: 541) ~[tomcat-embed-core-9.0.37.jar: 9.0.37] в org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) ~[tomcat-embed-core-9.0.37.jar:9.0.37] в org.apache.catalina.valves.Ошибка reportvalve.invoke(ошибка reportvalve.java: 92) ~ [tomcat-embed-core-9.0.37.jar:9.0.37] в org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.37.jar:9.0.37] в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java: 343) ~ [tomcat-embed-core-9.0.37.jar: 9.0.37] в org.apache.coyote.http11.Http11Processor.service (Http11Processor.java:373) ~ [tomcat-embed-core-9.0.37.jar: 9.0.37] в org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java: 65) ~[tomcat-embed-core-9.0.37.jar: 9.0.37] в org.apache.coyote.AbstractProtocol $ConnectionHandler.process (AbstractProtocol.java: 868) ~ [tomcat-embed-core-9.0.37.jar:9.0.37] в org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java: 1589) ~[tomcat-embed-core-9.0.37.jar: 9.0.37] в org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~ [tomcat-embed-core-9.0.37.jar: 9.0.37] в java.base/java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128) ~[na:na] в java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~ [na: na] в org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~ [tomcat-embed-core-9.0.37.jar:9.0.37] на java.base / java.lang.Thread.run(поток.java:835) ~[na:na]
Tax.java
package net.example.TaxEngine.Model;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collation = "Tax")
public class Tax {
@Id
private String Name;
public String getName() {
return Name;
}
public void setName(String name) {
this.Name = name;
}
}
TaxRepo.java
package net.example.TaxEngine.Repository;
import org.springframework.data.mongodb.repository.MongoRepository;
import net.example.TaxEngine.Model.Tax;
public interface TaxRepo extends MongoRepository<Tax, String> {
public Tax findByname(String Name);
}
Taxcontroller.java
package net.example.TaxEngine.Resources;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
// import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import net.example.TaxEngine.Model.Tax;
import net.example.TaxEngine.Repository.TaxRepo;
@RestController
public class TaxController {
@Autowired
private TaxRepo Repo;
@PostMapping("/addName")
public String SaveName(@RequestBody Tax name) {
Repo.save(name);
return "Added Name:" name.getName();
}
@GetMapping("/AllNames")
public List<Tax> getTaxs(){
return Repo.findAll();
}
@GetMapping("/message/[name]")
public String getTax(@PathVariable String name) {
return "Hello:" Repo.findById(name);
}
}
TaxEngineApplication.java
package net.example.TaxEngine;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class TaxEngineApplication {
public static void main(String[] args) {
SpringApplication.run(TaxEngineApplication.class, args);
}
}
Свойства приложения:
spring.data.mongodb.uri=mongodb://localhost:27017/test
Ответ №1:
У вас небольшая опечатка в вашем коде:
@Document(collation = "Tax")
public class Tax {
Вы используете сортировку, вы должны использовать collection для ссылки на структуру данных в вашей базе данных Mongo.
@Document(collection = "Tax")
public class Tax {
Чтобы прочитать о сортировке, ознакомьтесь с официальной документацией mongo