학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 문제 : @Transactional 를 주석처리하면 정상적으로 회원가입이 되서 h2 DB에 입력됩니다... 그런데 다시 DB데이터 삭제 하고 @Transactional 어노테이션 설정을하면 아래와같이 java.lang.IllegalStateException: java.sql.SQLException: Connection is closed 뜹니다.. 정상적으로 지금까지 다된거같은데 갑자기 이러네요.
[질문 내용] @PostMapping("/request-body-string-v2") public void requestBodyStringV2(InputStream inputStream) throws IOException { String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); log.info ("messageBody = {}", messageBody); } HTTP 요청 메시지 - 단순 텍스트 강의에서 v2를 똑같이 따라서 작성하다가 제가 Writer는 생략하고 inputStream만 받아서 바이트 코드를 String 값으로 변환한 뒤 로그 출력만 하려 했는데 inputStream만 받고 포스트맨으로 v2 url에 post로 요청을 보냈더니 에러가 발생했습니다. 아무리 생각해 봐도 writer를 뺀 것 말고는 다 똑같아서 에러가 날 이유가 없다고 생각했는데, 이상하게 에러가 발생했습니다. 그래서 혹시나 하는 마음에 영상과 완전히 똑같이 Writer를 넣어서 서버를 다시 시작하고 요청을 보냈더니 제대로 작동했습니다. 이상한 건, writer 뿐만 아니라 다른 아무 argument resolver에 등록된 객체를 함께 받으면 문제 없이 동작한다는 것이었습니다. 에러 내용을 확인해 보니 타임리프 템플릿 오류인 것 같은데 inputStream이랑 관련이 없어 보여서 어느 부분이 문제인 지 알 수가 없었습니다..ㅠ inputStream을 단일로 받으면 문제가 있는 것인 지 질문 남겨봅니다! 밑은 에러 내용입니다. org.thymeleaf.exceptions.TemplateInputException: Error resolving template [request-body-string-v2], template might not exist or might not be accessible by any of the configured Template Resolvers at org.thymeleaf.engine.TemplateManager.resolveTemplate( TemplateManager.java:869 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.engine.TemplateManager.parseAndProcess( TemplateManager.java:607 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.TemplateEngine.process( TemplateEngine.java:1098 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.TemplateEngine.process( TemplateEngine.java:1072 ) ~[thymeleaf-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.renderFragment( ThymeleafView.java:366 ) ~[thymeleaf-spring5-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.render( ThymeleafView.java:190 ) ~[thymeleaf-spring5-3.0.15.RELEASE.jar:3.0.15.RELEASE] at org.springframework.web.servlet.DispatcherServlet.render( DispatcherServlet.java:1405 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.DispatcherServlet.processDispatchResult( DispatcherServlet.java:1149 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.DispatcherServlet.doDispatch( DispatcherServlet.java:1088 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.DispatcherServlet.doService( DispatcherServlet.java:964 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.FrameworkServlet.processRequest( FrameworkServlet.java:1006 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at org.springframework.web.servlet.FrameworkServlet.doPost( FrameworkServlet.java:909 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at javax.servlet.http.HttpServlet.service( HttpServlet.java:681 ) ~[tomcat-embed-core-9.0.65.jar: 4.0.FR ] at org.springframework.web.servlet.FrameworkServlet.service( FrameworkServlet.java:883 ) ~[spring-webmvc-5.3.23.jar:5.3.23] at javax.servlet.http.HttpServlet.service( HttpServlet.java:764 ) ~[tomcat-embed-core-9.0.65.jar: 4.0.FR ] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:227 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.websocket.server.WsFilter.doFilter( WsFilter.java:53 ) ~[tomcat-embed-websocket-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:189 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.filter.RequestContextFilter.doFilterInternal( RequestContextFilter.java:100 ) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.23.jar:5.3.23] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:189 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.filter.FormContentFilter.doFilterInternal( FormContentFilter.java:93 ) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.23.jar:5.3.23] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:189 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal( CharacterEncodingFilter.java:201 ) ~[spring-web-5.3.23.jar:5.3.23] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) ~[spring-web-5.3.23.jar:5.3.23] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:189 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:162 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:197 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardContextValve.invoke( StandardContextValve.java:97 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.authenticator.AuthenticatorBase.invoke( AuthenticatorBase.java:541 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:135 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.valves.ErrorReportValve.invoke( ErrorReportValve.java:92 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:78 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.connector.CoyoteAdapter.service( CoyoteAdapter.java:360 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:399 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:65 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:890 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1789 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:49 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1191 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:659 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( TaskThread.java:61 ) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. build 성공 후 jar 실행 했는데 무반응 입니다. 에러도 안 뜨고 아무 반응이 없어요ㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. Please set the JAVA_HOME variable in your environment to match the location of your Java installation. 에러 발생 해당 폴더에서 gradlew build 를 하는데 버전 오류가 계속 나요. 환경변수 설정 제대로 되어있는데도 계속 오류납니다 ㅠ 버전확인 해보면 버전 일치하고 경로도 맞아요... 도대체 뭐가 문제일까요 ㅠㅠ 도와주세요..
스프링 빈과 의존관계에서, (1)컴포넌트 스캔과 자동 의존관계 설정 / (2) 자바 코드로 직접 spring 빈 등록하기 총 2가지 방법으로 설명해주셨고 2가지 방법 모두 알아야한다고 말씀해주셨는데, 두 방법이 사용되는 상황이 다른가요?? 각 방법이 어떤 차이가 있고 장단점이 있다면 궁금합니다!
강의를 들으면서 코드를 다 따라 쳐보고, 적당히 필기하면서 듣고... 그러고 있는데 강의를 다 들으면 해당 내용들에 대해 어떻게 공부를 해야하나요?? 강의 전체 한바퀴를 다 돌린 후에 어떻게 공부를 해야하는지 궁금합니다 안보고 직접 만들기에는 제가 너무 실력이 딸리는데.... 추천하시는 공부법이 있을까요???
안녕하세요 인텔리제이에서 실행시에는 오류 없이 잘 작동하는데 cmd창에서 gradlew build 입력후 빌드 진행하면 아래와 같은 에러가 뜹니다 자바 버전 관련 에러인 것 같아서 설정도 모두 바꿔보고 아예 스프링 프로젝트도 삭제해서 java11로 다시 만들어도 동일한 오류로 빌드가 안되고 있습니다 아래는 인텔리제이 설정입니다. 자바 버전입니다 프로젝트 dir입니다 스프링 프로젝트 다시 만들어도 안돼서 idea 파일 지우고 다시 재실행해보았는데도 안되네요.. 인텔리제이에서는 잘 실행되지만 cmd빌드시에만 해당 오류가 뜨는게 답답해서 문의글 올려봅니다 감사합니다
솔직히 현업 들어가면 노트북으로 개발하는 거 아닌 이상 다 윈도우로 개발 할 건데.. ㅠ 회사에서 맥지원해주지 않는 한엔.. 윈도우는 경로를 어떻게 들어가야 하는 건가요..? 맥에선 ll쓰고 뭐쓰면 되는데.. 윈도우는 따로 뭘 해야 하는 건가요? 강의가 너무 맥 위주라서 막히지 않아도 될 곳에서 막히는 것 같습니다.. 혹시 앞으로 다른 결제해서 보는 것들도 다 맥 위주인가요..? 단축키도 그렇고.. 사용법도 그렇고.. 보통은 윈도우 개발 환경에서 배우지 않나 싶습니다.. 해외사람이면 몰라도요.. 강의를 위해서 제가 맥을 구비해야 하는 걸까요-_-;; 아니면 윈도우 설명이라도 좀 해주셔야 하는 거 아닌지.. 이럴때마다 죄송한 말이지만 너무 스트레스 받습니다 ㅜㅜ 그래도 강의는 너무 재미있게 잘 보고 있습니다 ㅠ 기분 상하셨다면 죄송합니다.
스프링부트가 제공하는 기능 중 errorPage를 자동으로 등록해주고 /error 라는 경로로 기본 오류 페이지를 설정한다는 부분에서 이해가 되지 않는 것이 있습니다. 이 때 /error라는 경로는 URL 경로를 의미하는 것인가요 아니면 에러 페이지가 있는 파일 경로를 의미하는 것인가요?
<property name="locations" value="/WEB-INF/mybatis/db.properties"></property> name에서 이런 오류가 뜹니다 Set locations of properties files to be loaded. Can point to classic properties files or to XML files that follow JDK 1.5's properties XML format. Note: Properties defined in later files will override properties defined earlier files, in case of overlapping keys. Hence, make sure that the most specific files are the last ones in the given list of locations. 이 강의에서 다른 분도 같은 오류 질문 올리셨던데 답변이 되어있지 않네요 ㅠㅠㅠ 혹시 이 부분 해결 안되면 나프2탄의 스프링 부분 안듣고 바로 스프1탄으로 넘어가도 되나요? 그러면 이해하기 어려울까요?
원래 메소드 옆에 run 버튼이 떠야 하는데 뜨지 않아서 오류가 생긴 것 같습니다. 구글링 후 add configuration - main 추가를 했지만 그래도 run 버튼이 생기지 않습니다.. 이것 때문에 자잘하게 오류가 뜨는데 어떻게 고칠 수 있을까요?? (main 패키지 설정을 Mark Directory As -> Source Root 로도 해봤지만 아무 변화가 없었습니다)