[英]'Error parsing HTTP request header' for rest request
我 java Spring Boot Application with MongoDb 我想通過 REST 添加使用它的能力
當我嘗試發出 rest 請求(通過郵遞員)時,我收到 404 錯誤,盡管應用程序中有這樣的地址。
控制台中出現以下一組錯誤(很抱歉,日志很多,我沒有縮短它們以免不小心刪除重要細節):
DEBUG 10844 --- [nio-8081-exec-1] o.a.coyote.http11.Http11InputBuffer : Received [GET /api/v1/genres HTTP/1.1
User-Agent: PostmanRuntime/7.29.0
Accept: */*
Postman-Token: f20c843c-e9c8-48ab-88f2-4e5a42860d02
Host: localhost:8081
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
]
DEBUG 10844 --- [nio-8081-exec-2] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header
java.io.EOFException: null
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1339) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1226) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:805) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:360) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:271) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
DEBUG 10844 --- [nio-8081-exec-2] o.apache.coyote.http11.Http11Processor : Error state [CLOSE_CONNECTION_NOW] reported while processing request
java.io.EOFException: null
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1339) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1226) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:805) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:360) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:271) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.60.jar:9.0.60]
at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
DEBUG 10844 --- [nio-8081-exec-2] o.apache.coyote.http11.Http11Processor : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@74b75509:org.apache.tomcat.util.net.NioChannel@591b6c8b:java.nio.channels.SocketChannel[connected local=/[0:0:0:0:0:0:0:1]:8081 remote=/[0:0:0:0:0:0:0:1]:63260]], Status in: [OPEN_READ], State out: [CLOSED]
DEBUG 10844 --- [nio-8081-exec-2] o.apache.tomcat.util.threads.LimitLatch : Counting down[http-nio-8081-exec-2] latch=2
DEBUG 10844 --- [nio-8081-exec-2] org.apache.tomcat.util.net.NioEndpoint : Calling [org.apache.tomcat.util.net.NioEndpoint@56c8cd71].closeSocket([org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@74b75509:org.apache.tomcat.util.net.NioChannel@591b6c8b:java.nio.channels.SocketChannel[connected local=/[0:0:0:0:0:0:0:1]:8081 remote=/[0:0:0:0:0:0:0:1]:63260]])
DEBUG 10844 --- [nio-8081-exec-1] org.apache.tomcat.util.http.Parameters : Set query string encoding to UTF-8
DEBUG 10844 --- [nio-8081-exec-1] o.a.c.authenticator.AuthenticatorBase : Security checking request GET /api/v1/genres
DEBUG 10844 --- [nio-8081-exec-1] org.apache.catalina.realm.RealmBase : No applicable constraints defined
DEBUG 10844 --- [nio-8081-exec-1] o.a.c.a.jaspic.AuthConfigFactoryImpl : Loading persistent provider registrations from [/private/var/folders/0s/7r3fm8v552g9sks3hhm0dd640000gn/T/tomcat.8081.12303308613067863794/conf/jaspic-providers.xml]
DEBUG 10844 --- [nio-8081-exec-1] o.a.c.authenticator.AuthenticatorBase : Not subject to any constraint
DEBUG 10844 --- [nio-8081-exec-1] org.apache.tomcat.util.http.Parameters : Set encoding to UTF-8
TRACE 10844 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : GET "/api/v1/genres", parameters={}, headers={masked} in DispatcherServlet 'dispatcherServlet'
TRACE 10844 --- [nio-8081-exec-1] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped to HandlerExecutionChain with [ResourceHttpRequestHandler [classpath [META-INF/resources/], classpath [resources/], classpath [static/], classpath [public/], ServletContext [/]]] and 4 interceptors
DEBUG 10844 --- [nio-8081-exec-1] o.s.w.s.r.ResourceHttpRequestHandler : Resource not found
TRACE 10844 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : No view rendering, null ModelAndView returned.
DEBUG 10844 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : Completed 404 NOT_FOUND, headers={masked}
DEBUG 10844 --- [nio-8081-exec-1] o.a.c.c.C.[Tomcat].[localhost] : Processing ErrorPage[errorCode=0, location=/error]
TRACE 10844 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : "ERROR" dispatch for GET "/error", parameters={}, headers={masked} in DispatcherServlet 'dispatcherServlet'
TRACE 10844 --- [nio-8081-exec-1] s.w.s.m.m.a.RequestMappingHandlerMapping : 2 matching mappings: [{ [/error]}, { [/error], produces [text/html]}]
TRACE 10844 --- [nio-8081-exec-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
TRACE 10844 --- [nio-8081-exec-1] o.s.web.method.HandlerMethod : Arguments: [org.apache.catalina.core.ApplicationHttpRequest@207a1f34]
DEBUG 10844 --- [nio-8081-exec-1] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/json, application/*+json]
TRACE 10844 --- [nio-8081-exec-1] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Writing [{timestamp=Mon Apr 18 01:10:09 MSK 2022, status=404, error=Not Found, path=/api/v1/genres}]
TRACE 10844 --- [nio-8081-exec-1] s.w.s.m.m.a.RequestMappingHandlerAdapter : Applying default cacheSeconds=-1
TRACE 10844 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : No view rendering, null ModelAndView returned.
DEBUG 10844 --- [nio-8081-exec-1] o.s.web.servlet.DispatcherServlet : Exiting from "ERROR" dispatch, status 404, headers={masked}
DEBUG 10844 --- [nio-8081-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Disabling the response for further output
DEBUG 10844 --- [nio-8081-exec-1] o.a.coyote.http11.Http11InputBuffer : Before fill(): parsingHeader: [true], parsingRequestLine: [true], parsingRequestLinePhase: [0], parsingRequestLineStart: [0], byteBuffer.position(): [0], byteBuffer.limit(): [0], end: [214]
DEBUG 10844 --- [nio-8081-exec-1] o.a.tomcat.util.net.SocketWrapperBase : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@4b1fb2fc:org.apache.tomcat.util.net.NioChannel@38a3312f:java.nio.channels.SocketChannel[connected local=/[0:0:0:0:0:0:0:1]:8081 remote=/[0:0:0:0:0:0:0:1]:63261]], Read from buffer: [0]
DEBUG 10844 --- [nio-8081-exec-1] org.apache.tomcat.util.net.NioEndpoint : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@4b1fb2fc:org.apache.tomcat.util.net.NioChannel@38a3312f:java.nio.channels.SocketChannel[connected local=/[0:0:0:0:0:0:0:1]:8081 remote=/[0:0:0:0:0:0:0:1]:63261]], Read direct from socket: [0]
DEBUG 10844 --- [nio-8081-exec-1] o.a.coyote.http11.Http11InputBuffer : Received []
DEBUG 10844 --- [nio-8081-exec-1] o.apache.coyote.http11.Http11Processor : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@4b1fb2fc:org.apache.tomcat.util.net.NioChannel@38a3312f:java.nio.channels.SocketChannel[connected local=/[0:0:0:0:0:0:0:1]:8081 remote=/[0:0:0:0:0:0:0:1]:63261]], Status in: [OPEN_READ], State out: [OPEN]
DEBUG 10844 --- [nio-8081-exec-1] org.apache.tomcat.util.net.NioEndpoint : Registered read interest for [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@4b1fb2fc:org.apache.tomcat.util.net.NioChannel@38a3312f:java.nio.channels.SocketChannel[connected local=/[0:0:0:0:0:0:0:1]:8081 remote=/[0:0:0:0:0:0:0:1]:63261]]
DEBUG 10844 --- [alina-utility-2] org.apache.catalina.session.ManagerBase : Start expire sessions StandardManager at 1650233417946 sessioncount 0
DEBUG 10844 --- [alina-utility-2] org.apache.catalina.session.ManagerBase : End expire sessions StandardManager processingTime 1 expired sessions: 0
DEBUG 10844 --- [nio-8081-exec-3] o.apache.tomcat.util.threads.LimitLatch : Counting down[http-nio-8081-exec-3] latch=1
DEBUG 10844 --- [nio-8081-exec-3] org.apache.tomcat.util.net.NioEndpoint : Calling [org.apache.tomcat.util.net.NioEndpoint@56c8cd71].closeSocket([org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@4b1fb2fc:org.apache.tomcat.util.net.NioChannel@38a3312f:java.nio.channels.SocketChannel[connected local=/[0:0:0:0:0:0:0:1]:8081 remote=/[0:0:0:0:0:0:0:1]:63261]])
我的休息控制器:
@RestController
@RequestMapping("/api/v1")
@RequiredArgsConstructor
public class GenreController {
private final GenreService genreService;
@GetMapping("/genres/")
public List<Genre> findAllGenres() {
var genres = genreService.findAllGenres();
return genres;
}
}
我的 build.gradle 插件
plugins {
id 'org.springframework.boot' version '2.5.12'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
我的 build.gradle 依賴項:
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
implementation 'org.springframework.boot:spring-boot-starter-web:2.6.6'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'com.github.cloudyrock.mongock:mongock-spring-v5:4.1.14'
implementation 'com.github.cloudyrock.mongock:mongodb-springdata-v3-driver:4.1.14'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
我從文件application.yml
中刪除后問題就解決了:
spring:
main:
lazy-initialization: false
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.