2020-10-04 13:50:53.129 DEBUG 18704 --- [nio-8080-exec-2] o.a.coyote.http11.Http11InputBuffer : Received [GET /catalog/1 HTTP/1.1
User-Agent: PostmanRuntime/7.26.5
Accept: */*
Cache-Control: no-cache
Postman-Token: 2d855b91-4ee7-408f-99f0-5d89780e7902
Host: localhost:8080
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
]
2020-10-04 13:50:53.129 DEBUG 18704 --- [nio-8080-exec-1] 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:1231) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1141) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:791) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:355) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:261) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.38.jar:9.0.38]
at java.base/java.lang.Thread.run(Thread.java:835) ~[na:na]
Stephan van Hulst wrote:Does your application contain a context.xml file?
Stephan van Hulst wrote:Do you have a main class annotated with @SpringBootApplication? What package is it in? What package is your controller in?
Stephan van Hulst wrote:Yes, I think this is causing your issue.
By default, component scanning occurs in the package of your main application class, or sub-packages. com.example.Controller is not a sub-package of com.example.demo.
You could specify the name of the package to scan for components like this:
It's better however, to instead use a more sensible package hierarchy. For instance, if com.example.demo is the base package of your project, put the main application class in com.example.demo.spring and put your controllers in com.example.demo.spring.controller. This will enable component scanning for the com.example.demo.spring package (and also its sub-packages like com.example.demo.spring.controller) while skipping it for packages that don't need it. That way you could put your business model in com.example.demo, and it won't take up any resources being scanned needlessly.
- src/main/java/
- com/example/demo/
- Movie.java
- spring/
- MovieCatalogSvcsApplication.java
- controller/
- MovieCatalogController.java
Please use proper Java naming conventions. Package name elements should not be capitalized, and write out names (e.g. Controller instead of Ctrl).