inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

스프링 통합테스트 회원가입 오류

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

안녕하세요 선생님. 강의를 듣던 중 스프링 통합 테스트 강의 부분에서 회원가입 부분이 오류가 납니다.. 구글 서칭 해봐도 어떻게 해야될지 잘 모르겠어서 질문 남깁니다. h2는 안끄고 작동하고 있는 상황이었으며 강의자료에 있는 코드 복붙해서 해봐도 똑같이 오류 납니다.ㅠㅠ 도움주시면 감사하겠습니다.....

  • java
  • spring
  • mvc
  • spring-boot
  • MVC
2008ojm 댓글 1 좋아요 1 조회수 436

Spring Boot 3.0.2~ nativeQuery 작성시 에러

해결됨

재고시스템으로 알아보는 동시성이슈 해결방법

안녕하세요 강의듣다가 막혔다 해결한 부분이 있어서 혹여나 동일한 문제를 겪고 있으신 분이 계실까봐 공유드립니다. named lock파트의 native query를 작성하는 부분에서 강의 코드와 동일하게 작성하였음에도 불구하고 스프링 빈을 초기화 하는 과정에서 다음과 같은 에러를 만나게 되었습니다. 작성한 코드 @Query("select get_lock(:key, 3000)", nativeQuery = true) fun getLock(key: String) @Query("select release_lock(:key)", nativeQuery = true) fun releaseLock(key: String) 발생한 에러 Caused by: org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract void com.waterfogsw.cucurrentsolutions.domain.LockRepository.getLock(java.lang.String); Reason: Cannot invoke "String.contains(java.lang.CharSequence)" because "variable" is null at app//org.springframework.data.repository.query.QueryCreationException.create(QueryCreationException.java:101) at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lookupQuery(QueryExecutorMethodInterceptor.java:115) at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.mapMethodsToQuery(QueryExecutorMethodInterceptor.java:99) at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lambda$new$0(QueryExecutorMethodInterceptor.java:88) at java.base@17.0.6/java.util.Optional.map(Optional.java:260) at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.<init>(QueryExecutorMethodInterceptor.java:88) at app//org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:357) at app//org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.lambda$afterPropertiesSet$5(RepositoryFactoryBeanSupport.java:279) at app//org.springframework.data.util.Lazy.getNullable(Lazy.java:245) at app//org.springframework.data.util.Lazy.get(Lazy.java:114) at app//org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:285) at app//org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:132) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1798) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1748) ... 122 more Caused by: java.lang.NullPointerException: Cannot invoke "String.contains(java.lang.CharSequence)" because "variable" is null at org.springframework.data.jpa.repository.query.QueryUtils.createCountQueryFor(QueryUtils.java:620) at org.springframework.data.jpa.repository.query.DefaultQueryEnhancer.createCountQueryFor(DefaultQueryEnhancer.java:49) at org.springframework.data.jpa.repository.query.StringQuery.deriveCountQuery(StringQuery.java:111) at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.<init>(AbstractStringBasedJpaQuery.java:82) at org.springframework.data.jpa.repository.query.NativeJpaQuery.<init>(NativeJpaQuery.java:58) at org.springframework.data.jpa.repository.query.JpaQueryFactory.fromMethodWithQueryString(JpaQueryFactory.java:53) at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$DeclaredQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:170) at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateIfNotFoundQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:252) at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$AbstractQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:95) at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lookupQuery(QueryExecutorMethodInterceptor.java:111) ... 134 more 동일한 강의를 수강중이던 지인분과 함께 비교해본 결과 스프링 부트 버전 문제임을 확인하였습니다. 지인분은 data jpa 3.0.1 버전을 사용중이셨고, 저는 data jpa 3.0.3버전을 사용하였는데 3.0.2 이상 버전에서 nativeQuery=true 사용시 NullPointerException이 발생하는 이슈가 있음을 알려드립니다. 저는 부트버전을 3.0.1로 다운그레이드하여 정상적으로 실습 진행할 수 있었습니다 :) https://github.com/spring-projects/spring-data-jpa/issues/2812

  • spring
  • java
  • 동시성
ddd 댓글 2 좋아요 3 조회수 2173

Spring Boot / MySql db연동

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

H2 데이터베이스를 사용해봤던터라 기존에 MySql을 이용하여 db 생성을하고 build.gradle에 추가해주었는데요 혹시 버전차이 때문일까요? properties에 com.mysql.cj~ 이부분 읽지를 못하네요. 확인해보니 gradle에서 build자체가 안되는 것같은데 혹시 부트 version이 문제가 될까요?

  • java
  • spring
  • mvc
  • spring-boot
  • MVC
윤창호 댓글 2 좋아요 0 조회수 2415

CalculatorAddRequest 질문

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요 선생님. CalculatorAddRequest 클래스에서 number1과 number2를 private final로 설정하는 이유가 무엇인가요? 감사합니다.

  • java
  • mysql
  • spring
  • JPA
  • jpa
  • spring-boot
  • aws
댓글 1 좋아요 1 조회수 441

강의자료 어디있나요

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

강의 자료는 어디있나요

  • mvc
  • spring
  • MVC
동그란 강아지 댓글 1 좋아요 -3 조회수 618

@ArgumentResolver = ReturnValueHandler 같은 말인가요?

미해결

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

위 관계도에서 @ResponseBody의 경우에 ReturnValueHandler를 사용한다고 합니다. @ResponseBody가 있으면 ArgumentResolver를 사용한다고 합니다. 이 관계도를 보고 ArgumentResolver와 ReturnValueHandler는 서로 관련없다고 생각했었는데요. 사실은 ArgumentResolver = ReturnValueHandler 이런식이여서 @ResponseBody가 있으면 ArgumentResolver를 사용한다는게 ReturnValueHandler를 사용한다는 말과 같다는뜻인가요?

  • MVC
  • mvc
  • spring
유찬희 댓글 1 좋아요 1 조회수 644

loanBook 메소드 만들 때 유저정보 가져오는 코드에서 오류가 납니다

해결됨

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

예외 처리 부분이니까 주석 처리하면 실행될까 했는데 아래와 같은 에러메시지가 나옵니다. 혹시 몰라 전체 코드를 깃헙에 업로드해놓겠습니다! https://github.com/you-eun-hye/library-app-Inflearn

  • java
  • mysql
  • aws
  • spring-boot
  • jpa
  • JPA
  • spring
유은혜 댓글 1 좋아요 1 조회수 399

생성오류

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의 안내에 따라 파일을 다운로드 받고 진행했는데 만들자마자 오류가 났습니다 제가 무엇을 잘못한 걸까요?

  • spring-boot
  • java
  • mvc
  • spring
  • MVC
블라불루 댓글 1 좋아요 0 조회수 435

ArgumentResolver,returnValueResolver 이해한게 맞을까요?

해결됨

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

코드를 복습하다가 공통점과 강사님께서 설명하는 부분이 제가 이해한게 맞는지 확인하고 싶어서 문의를 남겨요 public class ControllerV4HandlerAdapter implements MyHandlerAdapter { @Override public ModelView handler(HttpServletRequest request,HttpServletResponse response,Object Hnadler){ ControllerV4 controller = (ControllerV4) handler; //createParamMap,model ==> ArgumentResolver 역할 Map<String,String> paramMap = createParamMap(request); Map<String,Object> model = new HashMap<>(); String viewName = controller.process(paramMap); //아래 로직이 ==> returnValueResolver ModelView mv = new ModelView(viewName); mv.setModel(model) return mv; } } 이렇게 이해해도 될까요 ??

  • mvc
  • spring
  • MVC
티벳로보 댓글 1 좋아요 0 조회수 338

getVideoFileCount 변수 선언하는 이유

미해결

나도코딩의 자바 기본편 - 풀코스 (20시간)

안녕하세요 선생님🙇‍♀️ 클래스_메소드 강의를 보다 궁금한 점이 생겨 질문 남깁니다. BlockBox 클래스에 두 메소드를 넣었고, 04_Method클래스에 두 메소드를 활용한 문장이 있었는데요. insertMemoryCard()는 그대로 사용했지만, getVideoFileCount()는 다시 변수로 선언한 이유가 무엇인가요? 감사합니다. void inserMemoryCard(int capacity) { System.out.println("메모리 카드가 삽입되었습니다."); System.out.println("용량은 " + capacity + "GB 입니다."); } void getVideoFileCount(int type) { if ( type == 1) { return 9; } else if ( type == 2) { return 1; } return 10; } b1.insertMemoryCard(256); int fileCount = b1.getVideoFileCount(1);

  • oop
  • 객체지향
  • java
고 예진 댓글 3 좋아요 0 조회수 678

스프링부트 3.0에서 실행할때.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 질문드릴려고합니다. 스프링부트 3.0에서 영한님의 강좌에서 jpa실습중 그레이들 추가했음에도 불구하고.. EntityManager import가 되지 않아서 ... 찾아보니까.. import javax.persistence.EntityManager; 을 지원하지않더라구요 대신 import jakarta.persistence.EntityManager; 찾았는데.. 에서 에러가 나옵니다 이것을 변경하는 방법이 있을까요? Querydsl부분은 잘 모르겠는데.. 처음부터 어렵게 등장해 당황스럽네요 ㅠ.ㅠ 혹시 아시는분계시면 부족한 제 견해 좀 깨달음을 주셨으면합니다.

  • spring
  • mvc
  • spring-boot
  • java
  • MVC
이경용 댓글 1 좋아요 0 조회수 947

study 파일 어떻게 해야되나요

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 1.study 파일이 없네요 제가 만들어서 해야되는건가요? study 빌더 파일 은 어디서 가지고 와야되나요?

  • spring-boot
  • spring
  • mvc
  • MVC
  • java
오상수 댓글 1 좋아요 0 조회수 500

model.addAttribute / .addAttribute 가 자동완성에 안뜹니다.

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 모델은 자동완서으로 가능. .add에 .addAttribute 가 나오지않고 타자로 써도 빨간글씨로 뜹니다ㅠㅠ

  • MVC
  • spring
  • mvc
  • spring-boot
  • java
박혜란 댓글 2 좋아요 1 조회수 1325

errorPage500Api 함수 내에서 ex 가 null 로 return 되네요.

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

errorPage500Api 함수 내에서 ex 가 null 로 return 되어 postman 결과가 json 으로 오지 않고 body 가 비었습니다. 오류는 아래와 같네요. java.lang.NullPointerException: Cannot invoke "java.lang.Exception.getMessage()" because "ex" is null at hello.exception.servlet.ErrorPageController.errorPage500Api( ErrorPageController.java:39 ) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:77 ) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) ~[na:na] at java.base/java.lang.reflect.Method.invoke( Method.java:568 ) ~[na:na] at org.springframework.web.method.support .InvocableHandlerMethod.doInvoke( InvocableHandlerMethod.java:207 ) ~[spring-web-6.0.5.jar:6.0.5] at org.springframework.web.method.support .InvocableHandlerMethod.invokeForRequest( InvocableHandlerMethod.java:152 ) ~[spring-web-6.0.5.jar:6.0.5] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle( ServletInvocableHandlerMethod.java:117 ) ~[spring-webmvc-6.0.5.jar:6.0.5] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod( RequestMappingHandlerAdapter.java:884 ) ~[spring-webmvc-6.0.5.jar:6.0.5] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal( RequestMappingHandlerAdapter.java:797 ) ~[spring-webmvc-6.0.5.jar:6.0.5] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle( AbstractHandlerMethodAdapter.java:87 ) ~[spring-webmvc-6.0.5.jar:6.0.5] at org.springframework.web.servlet.DispatcherServlet.doDispatch( DispatcherServlet.java:1081 ) ~[spring-webmvc-6.0.5.jar:6.0.5] at org.springframework.web.servlet.DispatcherServlet.doService( DispatcherServlet.java:974 ) ~[spring-webmvc-6.0.5.jar:6.0.5] at org.springframework.web.servlet.FrameworkServlet.processRequest( FrameworkServlet.java:1011 ) ~[spring-webmvc-6.0.5.jar:6.0.5] at org.springframework.web.servlet.FrameworkServlet.doGet( FrameworkServlet.java:903 ) ~[spring-webmvc-6.0.5.jar:6.0.5] at jakarta.servlet.http.HttpServlet.service( HttpServlet.java:705 ) ~[tomcat-embed-core-10.1.5.jar:6.0] at org.springframework.web.servlet.FrameworkServlet.service( FrameworkServlet.java:885 ) ~[spring-webmvc-6.0.5.jar:6.0.5] at jakarta.servlet.http.HttpServlet.service( HttpServlet.java:814 ) ~[tomcat-embed-core-10.1.5.jar:6.0] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:223 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:158 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.springframework.web.filter.RequestContextFilter.doFilterInternal( RequestContextFilter.java:100 ) ~[spring-web-6.0.5.jar:6.0.5] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:116 ) ~[spring-web-6.0.5.jar:6.0.5] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:185 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:158 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:101 ) ~[spring-web-6.0.5.jar:6.0.5] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:185 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:158 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:101 ) ~[spring-web-6.0.5.jar:6.0.5] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:185 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:158 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.catalina.core.ApplicationDispatcher.invoke( ApplicationDispatcher.java:691 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.catalina.core.ApplicationDispatcher.processRequest( ApplicationDispatcher.java:443 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.catalina.core.ApplicationDispatcher.doForward( ApplicationDispatcher.java:367 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.catalina.core.ApplicationDispatcher.forward( ApplicationDispatcher.java:295 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.catalina.core.StandardHostValve.custom( StandardHostValve.java:372 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.catalina.core.StandardHostValve.throwable( StandardHostValve.java:296 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:153 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.catalina.valves.ErrorReportValve.invoke( ErrorReportValve.java:92 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:78 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.catalina.connector.CoyoteAdapter.service( CoyoteAdapter.java:357 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:400 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:65 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:859 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1734 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:52 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1191 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:659 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( TaskThread.java:61 ) ~[tomcat-embed-core-10.1.5.jar:10.1.5] at java.base/java.lang.Thread.run( Thread.java:833 ) ~[na:na] 2023-02-26T09:40:16.190+09:00 ERROR 54414 --- [nio-8080-exec-2] o.a.c.c.C.[Tomcat].[ localhost ] : Exception Processing ErrorPage[exceptionType=java.lang.RuntimeException, location=/error-page/500] 어떻게 수정가능할까요?

  • spring
  • mvc
  • MVC
moonseok.shin 댓글 2 좋아요 0 조회수 1114

csrf 토큰 시큐리티 6버전 변경사항

해결됨

스프링 시큐리티

안녕하세요 강의 잘 보고있습니다. csrf 토큰 값을 헤더에 넣어서 실습하는 부분 따라해봤는데 잘 안되서 코드를 뜯어봤습니다. 이번에 시큐리티 버전이 6으로 올라가면서 csrf 토큰을 인코딩해서 전달하고 이걸 디코딩하는 부분이 영상과 다른것같았습니다. 그래서 기본으로 제공하는 로그인 페이지에서 디버깅을 해보았는데 클라이언트에 전달한 csrf 토큰값이랑 실제 서버가 가지는 csrf 토큰값이 서로 달랐습니다. 이렇게되면 영상에서 보여주신 실습은 제대로 동작하지 않는게 맞나요? 해당 사진은 CsrfFilter에서 actualToken을 받아오기 위한XorCsrfTokenRequestAttributeHandler 클래스 내부에 존재하는 resolveCsrfTokenValue 함수의 소스코드입니다. 예제 따라하면 항상 마지막에 사이즈 비교하는 부분에서 걸렸습니다.

  • java
  • spring-boot
  • spring-security
  • Spring Security
  • spring-boot
김민종 댓글 2 좋아요 0 조회수 1321

httpSession.setAttribute를 연속 두번 사용 했을 때 구조 질문

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

안녕하세요. 강의 정주행중입니다! 보다가 세션의 원리에 대해 자세히 알게되었습니다만 한 가지 궁금한 점이 있어서 질문을 남깁니다. loginV3에서 session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember); 위 코드를 통해 세션 저장소에 세션 정보를 생성하고 response에 쿠키 정보를 담아서 클라이언트에 전달하는 것까지 이해가 되었습니다. 그래서 쿠키 저장소를 보면 잘 조회가 됩니다. 만약에 위 상태에서 session.setAttribute("mem", "123"); 를 한번 더 사용하면 위 사진처럼 JSESSIONID가 아닌 다른 Name으로 row 데이터가 추가될 줄 알았는데 그게 아니더군요. (JESSIONID 하나만 있었습니다.) 그래서 만약 한 컨트롤러에 session.setAttribute 를 두번 사용하게 되면 아래와 같은 구조가 되는게 맞는건가요?? 위 그림처럼 되면 JESSIONID 하나만 있어도 value 자체가 Map이기 때문에 HttpSession.getAttribute("SessionConst.LOGIN_MEMBER"); 를 조회하면 loginMember 객체가 HttpSession.getAttribute("mem"); 를 조회하면 "123" 문자열이 반환되는 것이 맞을까요??

  • spring
  • mvc
  • MVC
Aurora 댓글 1 좋아요 3 조회수 930

http://localhost:8080/hello 접속 오류

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. boot '3.0.3'버전 java17 버전 이용중입니다. java/hello/hellospring/controller/HelloController resources/static/index.html resources/templates/hello.html 소스는 전부 교재에서 복붙하고 서버 실행 후 http://localhost:8080/hello 보면 이렇게 뜨네요 ㅠㅠ

  • spring-boot
  • mvc
  • MVC
  • java
  • spring
한진희 댓글 1 좋아요 0 조회수 1269

스프링 부트 툴 4 사용해도 되나요

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

스프링부트 툴 4 인텔리제이 무료버전이 아니라 spring boot 툴 사용해도됩니까?

  • MVC
  • java
  • mvc
  • spring-boot
  • spring
오상수 댓글 1 좋아요 0 조회수 1590

POST Form에 대해 질문드립니다.

미해결

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

안녕하세요. 강의 6분23초 쯤에 HTML을 FORM을 통해서 데이터를 입력하고 나서 전송을 해주었는데요. 이때 클라이언트의 URL이 /basic/hello-form.html에서 /request-param-v1으로 바뀌었는데, 왜 바뀌게 된건가요? HTML FORM에서 전송 버튼을 누르면 RequestMapping이 되어서 메소드가 호출되는거 같은데, 왜 해당 컨트롤러의 메소드가 호출되는것인가요? http강의자료와 이전에 학습했던 자료를 찾아봐도 해당 관련 내용이 어떤것인지 확인이 안되어 질문드립니다ㅠㅠ -구글링을 하면서 1,2번에 대한 답을 추가로 생각해봤는데, [전송]버튼을 누르면 form action으로 지정한 URL을 POST방식으로 서버에 요청하는데, 클라이언트의 URL이 /request-param-v1로 바뀐다. 즉 /request-param-v1을 POST방식으로 서버에 요청하는것이고, 이렇게되면 /request-param-v1이 호출되는것이므로 해당 컨트롤러 메서드가 실행된다. 이렇게 이해하는게 맞을까요?

  • spring
  • mvc
  • MVC
오리쉐리 댓글 1 좋아요 0 조회수 499

모임 만들기 페이지에서 시간을 설정할 때, 연월일 제외하고 시간만 입력하려면 어떻게 하면 되는지요?

미해결

스프링과 JPA 기반 웹 애플리케이션 개발

안녕하세요. 모임 만들기 페이지에서 시간을 설정할 때, 연월일 제외하고 시간만 입력하려면 어떻게 하면 되는지요? fragments.html 의 <div th:fragment="event-form (mode, action)"> 에서 <input id="endEnrollmentDateTime" type="datetime-local" 의 type 부분을 type="time" 으로 하고 Event 클래스에서 private LocalDateTime endEnrollmentDateTime; 을 private DateTime endEnrollmentDateTime; 로 변경하고 실행하면 html 상에서는 시간이 입력되나, DB 에는 insert 되어 있지 않습니다. 어떻게 하면 가능한지요? 자세한 설명 부탁드립니다. 그리고, 제공해 주신 소스를 다운로드해서 프로젝트를 실행한 후, 오른쪽 드롭다운 메뉴 중 스터디를 클릭해도 아무 동작이 일어나지 않습니다. 소스를 보면 <a class="dropdown-item" >스터디</a> 이렇게만 나와있고 th:href="@{}" 로 연결된 페이지가 없습니다. 이 부분 기능 구현은 안 해 놓으신 건지요? 프로필 페이지에서도 왼쪽 프로필 사진 밑에 있는 스터디 버튼을 누르면 Study 라고만 나오고 별다른 페이지가 나오지 않습니다. 이 부분도 기능 구현은 안 해 놓으신 건지요?

  • java
  • spring
  • spring-boot
  • jpa
  • JPA
  • spring-boot
  • thymeleaf
박종성 댓글 1 좋아요 0 조회수 480

인기 태그

인프런 TOP Writers

주간 인기글