인프런 커뮤니티 질문&답변

전해용님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

Hello 서블릿

System.out.println("req = " + req);이 실행되지 않습니

작성

·

33

0

image.png

 

HttpServletResponse 수강중 갑자기 JAVA_HOME 관련 오류가 발생하여(해결못함) 인텔리제이와 자바를 모두 재설치후 HelloServlet부터 다시 작성중입니다.

 

코드 작성후 localhost8080:/hello에 접속해도 println문이 실행되지 않고 아래와 같은 [nio-8080-exec-1]이라는 문구 3줄이 나타납니다.

[nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'

[nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'

[nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 0 ms

 

문의글 작성중 추가적인 코드가 여러줄 추가되어 일부 올립니다

 

오후 6:09:56: Executing ':hello.servlet.ServletApplication.main()'...

Invalid Java installation found at 'C:\Users\ido0709\.jdks\jbr-17.0.12' (IntelliJ) auto-detected. It will be re-checked in the next build. This might have performance impact if it keeps failing. Run the 'javaToolchains' task for more details.

> Task :compileJava

> Task :processResources UP-TO-DATE

> Task :classes

> Task :hello.servlet.ServletApplication.main()

 

Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.

java.lang.IllegalArgumentException: Invalid character found in method name [0x160x030x010x000xee0x010x000x000xea0x030x030xfdd0x99"}0xce0xe30x960xd8b0xec0x880x160x82J0xa1x0x9a0xde0xa70xb0^0x8au0xfc0xbd;0x7f0xf150xe40xed ]. HTTP method names must be tokens

at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:407) ~[tomcat-embed-core-10.1.30.jar:10.1.30]

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:257) ~[tomcat-embed-core-10.1.30.jar:10.1.30]

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.30.jar:10.1.30]

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.30.jar:10.1.30]

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.30.jar:10.1.30]

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.30.jar:10.1.30]

at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.30.jar:10.1.30]

at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.30.jar:10.1.30]

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.30.jar:10.1.30]

at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]

 

답변 2

0

안녕하세요. 전해용님, 공식 서포터즈 OMG입니다.

ServletApplication 클래스의 7번쨰 줄 @ServletComponentScan을 추가해주세요.

image.png

 

해당 어노테이션을 임시로 주석처리하니 올리신 메시지가 출력되네요 😀

image.png

 

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 전해용 님,

문의하신 문제와 관련하여 비슷한 상황을 겪은 다른 수강생의 질문이 있었습니다. 해당 질문에서는 서블릿 관련 설정과 디버깅에 대한 내용을 다루고 있습니다. 해당 링크들을 참고해보시면 도움이 될 것 같습니다:

  1. HTTP 요청 메시지 로그로 확인하기:

    • 스프링 부트의 톰캣 버전 변경에 따른 설정 변경 문제입니다. 로그 레벨을 debug에서 trace로 바꾸어 해결하는 방법을 제공합니다.
      이미지 보기
  2. 2 hello-서블릿에서 웹 브라우져에 내용이 보이지 않음:

    • 서블릿 코드를 개선함으로써 발생하는 문제를 해결한 사례입니다. 특히 super.service(req, resp)을 제거하는 것으로 해결한 경우가 있었습니다.
  3. HttpRequestServlet - 기본 사용법 강의 질문:

    • 서블릿이 정상적으로 등록되지 않는 문제에 대한 해결책입니다. “Bean Creation” 오류와 관련하여 종종 BC 문제로 이어질 수 있습니다.

기존 질문들을 참고하시면서, 톰캣 설정이나 서블릿 등록 관련 문제를 해결할 수 있을 것입니다. 아직 해결되지 않는 문제가 있으면, 계속해서 질문해 주시면 더 도와드리겠습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.