묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
F12 개발자 도구 Headers에 왜 Form Data가 있는거죠?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강사님께서 F12(개발자 도구 창)을 띄워서 Form Data가 넘어오는걸 보여주셨는데그림을 보면 Headers 메뉴 안에 Form Data 가 있습니다.그런데 HTTP프로토콜에서 Form Data는 쿼리 스트링 형식으로 message body에 들어가서 전달 된다고 알고있는데 개발자 도구에서는 Headers메뉴에 있네용편의상 Headers메뉴에 message body값도 같이 넣은건지 제가 뭔가 잘못이해하고 있는 건지 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ItemRepository.java의 update() 메서드 관련 질문
public void update(Long itemId, Item updateParam) { Item findItem = store.get(itemId); findItem = updateParam; }update() 메서드 코드를 수정한 것인데,파라미터로 paramItemDto(id 없이 itemName, price, quantity로만 이뤄진 클래스)를 넘기는 것이 아니라 위와 같이 Item을 넘기는 경우라면, 코드를 이렇게 작성해도 괜찮은 것일까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 필터 오류 페이지
안녕하세요 스프링 필터 오류 페이지 관련 궁금한 것이 있어 질문을 드립니다.스프링 필터 오류 페이지를 사용하면 오류가 발생하여 was에서 view를 부를 때 필터랑 인터셉터는 자동으로 안부르게 설정 되어져 있는건가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
클래스 인식안됨 Truncated class file
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? y2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? yy3. 질문 잘하기 메뉴얼을 읽어보셨나요? y[질문 내용]여기에 질문 내용을 남겨주세요.Truncated class file 라는 에러가 뜹니다.하라는대로 다 하는중 이래도 안되네요 캐시도 삭제 그래도 같은 문제 발생 어떻게 해결해야하나요?? 진도가 1강에서 막혀버려서
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
파일 업로드 중 에러 발생
서블릿과 파일 업로드2 를 학습하던 중삭제가 불가능하다는 예외가 발생하면서여러 방법을 시도해도 해결되지 않아 문의 드립니다. 개발 환경window사용중인 스프링 부트 버전 : 2.7.8자바 언어 버전 : 11 properties 설정경로 설정은 위의 사진처럼 했습니다. 에러 로그를 보면 삭제를 할 수 없다고 뜨면서 예외가 발생합니다. 로그 속에 있는 경로로 들어가 직접 파일 제거 시도-> 서버가 내려갈 경우 파일이 삭제되는 것 확인 가능 해당 부분이 문제라고 생각됩니다.해결하기 위해 했던 노력관리자 권한으로 프로그램 실행결과 : 실패강의 자료 코드 그대로 옮겨 오기결과 : 실패강의 소스 코드 그대로 옮겨 오기결과 : 실패경로 바꿔 보기결과 실패총 4가지의 시도 결과 전부 실패해 문의 드립니다. 에러 발생 로그내가 생각하는 로그 핵심 문제 원인2023-01-22 21:42:00.789 WARN 31328 --- [nio-8080-exec-3] s.w.m.s.StandardServletMultipartResolver : Failed to perform cleanup of multipart items2023-01-22 20:48:55.796 ERROR 28536 --- [nio-7070-exec-3] o.apache.coyote.http11.Http11Processor : Error processing requestjava.io.UncheckedIOException: Cannot delete C:\Users\lgh94\AppData\Local\Temp\tomcat.7070.1452951454340902875\work\Tomcat\localhost\ROOT\upload_ee1add48_92d9_4d5b_8495_af18bb01c136_00000000.tmpat org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.delete(DiskFileItem.java:431) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.core.ApplicationPart.delete(ApplicationPart.java:54) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.Request.recycle(Request.java:483) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:441) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]Caused by: java.io.IOException: Cannot delete C:\Users\lgh94\AppData\Local\Temp\tomcat.7070.1452951454340902875\work\Tomcat\localhost\ROOT\upload_ee1add48_92d9_4d5b_8495_af18bb01c136_00000000.tmp... 13 common frames omitted2023-01-22 20:48:55.796 DEBUG 28536 --- [nio-7070-exec-3] o.apache.coyote.http11.Http11Processor : Error state [CLOSE_CLEAN] reported while processing requestjava.io.UncheckedIOException: Cannot delete C:\Users\lgh94\AppData\Local\Temp\tomcat.7070.1452951454340902875\work\Tomcat\localhost\ROOT\upload_ee1add48_92d9_4d5b_8495_af18bb01c136_00000000.tmpat org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.delete(DiskFileItem.java:431) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.core.ApplicationPart.delete(ApplicationPart.java:54) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.Request.recycle(Request.java:483) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:441) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]Caused by: java.io.IOException: Cannot delete C:\Users\lgh94\AppData\Local\Temp\tomcat.7070.1452951454340902875\work\Tomcat\localhost\ROOT\upload_ee1add48_92d9_4d5b_8495_af18bb01c136_00000000.tmp... 13 common frames omitted2023-01-22 20:48:55.798 ERROR 28536 --- [nio-7070-exec-3] o.a.coyote.http11.Http11NioProtocol : Error reading request, ignoredjava.io.UncheckedIOException: Cannot delete C:\Users\lgh94\AppData\Local\Temp\tomcat.7070.1452951454340902875\work\Tomcat\localhost\ROOT\upload_ee1add48_92d9_4d5b_8495_af18bb01c136_00000000.tmpat org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.delete(DiskFileItem.java:431) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.core.ApplicationPart.delete(ApplicationPart.java:54) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.Request.recycle(Request.java:483) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.CoyoteAdapter.log(CoyoteAdapter.java:515) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:429) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]Caused by: java.io.IOException: Cannot delete C:\Users\lgh94\AppData\Local\Temp\tomcat.7070.1452951454340902875\work\Tomcat\localhost\ROOT\upload_ee1add48_92d9_4d5b_8495_af18bb01c136_00000000.tmp... 13 common frames omitted2023-01-22 20:48:55.799 ERROR 28536 --- [nio-7070-exec-3] org.apache.tomcat.util.net.NioEndpoint : Error running socket processorjava.io.UncheckedIOException: Cannot delete C:\Users\lgh94\AppData\Local\Temp\tomcat.7070.1452951454340902875\work\Tomcat\localhost\ROOT\upload_ee1add48_92d9_4d5b_8495_af18bb01c136_00000000.tmpat org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.delete(DiskFileItem.java:431) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.core.ApplicationPart.delete(ApplicationPart.java:54) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.Request.recycle(Request.java:483) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.CoyoteAdapter.log(CoyoteAdapter.java:515) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.catalina.connector.CoyoteAdapter.checkRecycled(CoyoteAdapter.java:539) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.http11.Http11Processor.recycle(Http11Processor.java:1439) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.AbstractProtocol$ConnectionHandler.release(AbstractProtocol.java:1098) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1056) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.71.jar:9.0.71]at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]Caused by: java.io.IOException: Cannot delete C:\Users\lgh94\AppData\Local\Temp\tomcat.7070.1452951454340902875\work\Tomcat\localhost\ROOT\upload_ee1add48_92d9_4d5b_8495_af18bb01c136_00000000.tmp... 14 common frames omitted
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
base.html에서 th:block을 div로 바꾸었을 때 관련 질문
base.html 코드 일부분입니다. <!-- 추가 --> <th:block th:replace="${links}" /> <div th:replace="${links}"></div>두 번째 줄은 th:block -> div로 바꾼 것입니다.th:replace로 인해서 <div> 코드가 2개의 <link>로 대체될 줄 알았는데, 아예 <div> 코드 자체가 출력이 안 되었습니다(소스코드 보기 했을 때).왜 태그가 대체되는 것이 아니라 아예 출력되지 않는 것인가요..??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
base.html에서 일부 코드 변경 가능 여부 질문
base.html의 코드 일부입니다.<head th:fragment="common_header(title,links)"> <title th:replace="${title}">레이아웃 타이틀</title> ... <!-- 추가 --> <th:block th:replace="${links}" /> </head><title>을 넘기지 않았더니 exception이 발생했습니다.태그를 반드시 넘겨야 하는 것이라면, 그래서 <title>이 교체될 것이라면 위 코드에서 <title>, '레이아웃 타이틀'을 작성하지 않아도 되는 것가요?<title> 대신 큰 의미없는 <div>나 (5번째 줄에서 작성한) <th:block>을 사용해도 되는 것인가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
V3 new - form
java.io.EOFException: null at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1340) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1227) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:805) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:360) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:271) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]2023-01-22 12:02:46.767 DEBUG 16928 --- [nio-8080-exec-2] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request headerjava.io.EOFException: null at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1340) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1227) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:805) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:360) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:271) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]2023-01-22 12:02:46.768 DEBUG 16928 --- [nio-8080-exec-2] o.apache.coyote.http11.Http11Processor : Error state [CLOSE_CONNECTION_NOW] reported while processing requestjava.io.EOFException: null at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1340) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1227) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:805) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:360) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:271) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]2023-01-22 12:02:46.768 DEBUG 16928 --- [nio-8080-exec-3] o.apache.coyote.http11.Http11Processor : Error state [CLOSE_CONNECTION_NOW] reported while processing requestjava.io.EOFException: null at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1340) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1227) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:805) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:360) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:271) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.70.jar:9.0.70] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]패키지 위치랑 URI주소 정확하게 맞췄는데도 404 에러에 로그는 저렇게 찍히네요private static MyView viewResolver(String viewName) { return new MyView("/WEB-INF/views/" + viewName + ".jsp"); }
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
<th:block> 태그의 존재 이유 관련 질문
<div th:each="user : ${users}"> <div> 사용자 이름1 <span th:text="${user.username}"></span> 사용자 나이1 <span th:text="${user.age}"></span> </div> <div> 요약 <span th:text="${user.username} + ' / ' + ${user.age}"></span> </div> </div><th:block> -> <div>로 바꾼 코드입니다.th:block 태그를 사용하지 않고 div 태그 2개를 반복할 수 있는 방법이 존재할 것 같아서 바꿔본 것인데,가장 바깥 <div> 태그가 출력된다는 점을 제외하면 눈에 보이는 결과물은 동일합니다.제가 아직 경험이 부족해서 <th:block>가 유용하게 사용되는 경우를 모르는 것이겠죠...? ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
오라클 DB연결 bean설정하는 방법 질문합니다.
강의를 듣다가 데이터베이스를 h2 말고 oracle로 사용하고싶어서 변경해봤는데 방법을 잘 모르겠습니다..단순하게 db 연결은 가능합니다. public class JdbcTest01 { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "이름", "비밀번호"); Class.forName("oracle.jdbc.driver.OracleDriver"); String sql = "select * from member"; stmt = conn.createStatement(); rs = stmt.executeQuery(sql); System.out.println(" == 쿼리문 처리 결과 =="); while (rs.next()) { System.out.println("Lprod_id : " + rs.getInt("id")); System.out.println("------------------------------"); } } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { } finally { if (rs!=null) { try { rs.close(); } catch (SQLException e2) { } } if (stmt!=null) { try { stmt.close(); } catch (SQLException e2) { } } if (conn!=null) { try { conn.close(); } catch (SQLException e2) { } } } } } 그런데.. 빈 설정하는 방법을 잘 모르는 것 같습니다 ㅠㅠ (.getConnection에 유저이름과 비밀번호는 제대로 설정했습니다!밑에만 바꿨어요!)public class JdbcMemberRepository implements MemberRepository { private final DataSource dataSource; public JdbcMemberRepository(DataSource dataSource) { this.dataSource = dataSource; } @Override public Member save(Member member) { String sql = "insert into member(name) values(?)"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "이름", "비밀번호"); pstmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); pstmt.setString(1, member.getName()); pstmt.executeUpdate(); rs = pstmt.getGeneratedKeys(); if (rs.next()) { member.setId(rs.getLong(1)); } else { throw new SQLException("id 조회 실패"); } return member; } catch (Exception e) { throw new IllegalStateException(e); } finally { // 5. 자원 반납 if (rs!=null) { try { rs.close(); } catch (SQLException e2) { // TODO: handle exception } } if (conn!=null) { try { conn.close(); } catch (SQLException e2) { // TODO: handle exception } } } }프로퍼티스spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver spring.datasource.username=이름 spring.datasource.password=비밀번호 디펜던시스dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'com.oracle.ojdbc:ojdbc8:19.3.0.0' implementation 'com.oracle.database.jdbc:ojdbc6:11.2.0.4' testImplementation 'org.springframework.boot:spring-boot-starter-test' implementation 'org.projectlombok:lombok' implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' } @Configuration@Configuration public class SpringConfig { private DataSource dataSource; public SpringConfig(DataSource dataSource) { this.dataSource = dataSource; } @Bean //스프링빈수동등록 public MemberService memberService() { return new MemberService((MemoryMemberRepository) memberRepository()); } @Bean public MemberRepository memberRepository() { //return new MemoryMemberRepository(); return new JdbcMemberRepository(dataSource); } } 어떤 부분을 추가하고 수정해야하는지 잘 모르겠습니다 ㅠ
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
선행 지식
스프링 강의 선행으로 요구되는 지식이 자바, 관계형 데이터베이스 기초라고 되어 있는데요자바랑 MySQL은 공부했습니다.그런데 JDBC나 JSP, 서블릿, 디자인 패턴 등에 대한 지식이나 웹 개발에 대한 지식은 모른 채로 로드맵 시작해도 상관없나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
th:text=${}에서 변수에 데이터가 없는 경우 관련 질문
<span th:text="${data}">html data</span>Model에 data가 있는 경우, 키가 data인 값이 'html data'를 대체합니다.그런데, Model에 data가 없는 경우, 소스코드 보기로 확인해보니 <span></span>으로 출력되었습니다. 그렇다면 'html data'는 도대체 왜 작성하는 것인가요..??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
' 생략 여부 관련 질문
<span th:text="10 + 2"></span> <span th:text="10 % 2 == 0"></span>'(작은따옴표) 생략 여부 관련해서 여쭤보고 싶습니다.첫 번째 줄에서, 10+2 덧셈 연산이 이뤄진 후에 <span th:text="12"></span>이 되는데, 여기에서 사실은 '12'로 ''가 생략된 것인가요? 12가 숫자가 아닌 문자열로 인식되는 것이 맞나요?마찬가지로 두 번째 줄에서, <span th:text="true"></span>가 되는데, 사실은 'true'로 ''가 생략된 것인가요? true가 boolean형이 아닌 문자열로 인식되는 것이 맞나요?
-
해결됨스프링 프레임워크는 내 손에 [스프2탄]
/board/get?idx=${vo.idx} 질문
상세보기 구현하는 과정에 있어서 궁금한점이 있어서 질문드립니다.get이라는 컨트롤러를 만들고 /board/get?idx=${vo.idx}에서 선택한 idx에 따라서 링크가 이동되는것은 강의에서 잘 풀어주셔서 이해가 잘가는것 같습니다.질문을 드리자면 단순하게 get?idx <--- 여기서 물음표를 넣으셨는데 이건 정해진건지 궁금하고 어떤 이유에서 ?가 적힌건지 궁금합니다. get!!idx 이런식으로 적으니까 안되더라구요 ㅠㅠ...연휴 잘보내시길 바라면서 질 좋은 강의에 감사 드립니다!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
bean 인식이 안됩니다.
jpa 라이브러리 추가했고 application 설정도 다 하고 @Configuration 애노테이션도 넣었는데 EntityManager가 빈으로 등록되어 있지 않다고 나옵니다. 왜 이러는걸까요? 프로젝트 링크: https://drive.google.com/file/d/1x_OeOhEBOKSNTiuzUqxY-zSyQmsmon5n/view?usp=share_link
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
순수JDBC 부분 실행 오류
입문 강의의 순수 JDBC 부분에서 제일 마지막 부분입니다. 제일 마지막으로 프로그램 실행을 해서 데이터베이스가 잘 작동하는지 확인하는데 강의안에 코드를 모두 복붙했기 때문에 오타는 없을건데 SpringConfig에서 저렇게 두개가 오류가 납니다.첫번째 오류는 SpringConfig 파일 위치를 옮겨서 해결했는데 그 다음 오류인 위의 사진에서 빨간색 글씨로된 부분은 왜 오류가 나는지 모르겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
./gradlew build 하고나서 인텔리에서 오류가 납니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]우선 개발환경은 우분투 22.04 버전입니다. 재부팅은 해보았습니다.그래들을 빌드(sudo ./gradlew build)하고나서는 인텔리제이에서 run하면, 빨간 글자로unable to delete directory~오류가 발생합니다. gradle clean을 하면 인텔리에서 정상으로 실행됩니다.
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
다시 질문드립니다.
mvc04 import 한 뒤 memberRegister.do 가 정상적으로 나오는데 이후 가입을 누르면이런 오류가 뜨게 됩니다.보니까 sql 문제인거 같기도 하고 자꾸 가입실패가 뜹니다. 어떤 점을 중점으로 봐야되나요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
save-result.jsp 404 에러
https://drive.google.com/file/d/1QG0d3geR9TiWbMjfYKgHT4F48Qmvl_lZ/view?usp=share_link 구글 드라이브 링크 입니다.. 잘 따라가고 있는데 틀린 코드가 없는거 같은데 회원가입 submit 하면 404에러가 나오네요.. save.jsp 경로를 못 찾는거 같은데 어떻게 해야할지 모르겠습니다.. MVC 패턴 - 적용 16분 부분에서 나온겁니다..ㅠ
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
선생님 server.xml 컨텍스트 path에 대해서 질문드립니다.
MVC04 를 실행시키려면 이 코드로는 진행이 안됩니다. 여기가 문제인 것 같은데 어떤 게 올바른 코드인지 말씀 부탁드립니다 ㅠㅠ!