inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

컨트롤러와 서블릿의 차이점?

해결됨

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

MVC 패턴을 사용하는 과정에서 @Controller과 서블릿의 차이점이 궁금합니다. 서블릿과 JSP에서는 비즈니스로직을 수행한 뒤 뷰 부분도 같이 실행했지만 MVC패턴을 활용한 부분에서는 비즈니스로직은 비즈니스로직만 뷰 관련 부분은 뷰 관련 부분에서만 실행하던데 그렇다면 @Controller와 서블릿의 차이점이 무엇인지가 궁금합니다.

  • spring
  • mvc
서정원 댓글 1 좋아요 0 조회수 451

@ExceptionHandler와 @ResponseStatus 같이 쓰는 경우 API예외처리과정

미해결

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

https://www.inflearn.com/questions/361278/exceptionhandler-%EC%A7%88%EB%AC%B8 이 질문에서 " @ResponseStatus는 내부적으로 response.sendError(statusCode, resolvedReason); 를 통해 response 내부에 오류가 발생했었음을 상태로 저장하게 됩니다.(이전 강의에서 알려주셨던 내용) " 보고 의문이 들어 아래코드를 디버깅을 하고 정리했습니다. ApiResponse 를 제가 니즈에 맞게 만든 JSON 형식이라 가정하시면 됩니다. @ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(BindException.class) public ApiResponse<Object> bindException(BindException e) { return ApiResponse.of( HttpStatus.BAD_REQUEST, e.getBindingResult().getAllErrors().get(0).getDefaultMessage(), null ); } @ExceptionHandler을 사용하여 API예외처리 진행과정 요청의 Accept 헤더가 "*/*", "application/json"인경우 (1) 컨트롤러에서 예외발생 (2) 이 응답값을 @ExceptionHandler을 사용하여 프로젝트의 니즈에 맞게 변경 예로들어 상품에서 일어나는 오류, 회원가입에 일어나는 오류에 맞게 변경 return값을 ResponseEntity로 해주거나 클래스에 @RestControllerAdvice를 이용 이 부분이 궁금한점 인데 (Q1) API 오류 처리 이므로 @ResponseStatus에 의해 에러 코드만 변경 되고(500 -> 400) 반환값인 ApiResponse를 DispatchServlet에서 처리하여 클라이언트에게 전달해준다고 생각이 들었습니다. (Q2) 만약 API 오류 처리가 아닌 오류 화면(HTML 오류 처리)이었더라면 ( @ExceptionHandler 사용 안하고) -> 컨트롤러에서 예외발생 -> @ResponseStatus 를 사용하여 에러 코드만 변경되고 error정보가 WAS(HttpServlet)까지 전달 -> 기본 에러 페이지인 "/error"로 재요청-> BasicErrorController.errorHtml() 호출 -> response.setStatus(getStatus(request).value()) (=response.sendError()) 발생 -> ModelAndView 리턴 을 하는 게 아닌가요? (Q3) @ResponseStatus 가 response.sendError()를 발생하는 게 아니라 에러 코드만 변경해주고 이를 바탕으로 ExceptionHandler나 BasicErrorController가 처리해 준다고 생각이 듭니다.

  • spring
  • mvc
코딩먹는하마 댓글 1 좋아요 2 조회수 538

톰캣 서버가 안열립니다 그리고 RUN이 비활성화됩니다

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)아뇨 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] 여기에 질문 내용을 남겨주세요. "C:\Program Files\Java\jdk-17\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.3.1\lib\idea_rt.jar=54590:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.3.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\OWNER\OneDrive\바탕 화면\ton\servlet (2)\servlet\out\production\classes;C:\Users\OWNER\OneDrive\바탕 화면\ton\servlet (2)\servlet\out\production\resources;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-web\3.2.0\e609f839e7c2ff9c90bc75d7c05dbcbb19315319\spring-boot-starter-web-3.2.0.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-json\3.2.0\e831483c03433b987cc9c72f8ea67757f9865191\spring-boot-starter-json-3.2.0.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter\3.2.0\4d0cc70617a9febbbc6ad81562e930d93f7b2665\spring-boot-starter-3.2.0.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-webmvc\6.1.1\76c4408b67828aa9656f5955dc2c1c4c0e1b6da3\spring-webmvc-6.1.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-web\6.1.1\4eeb5f2edb9f04d00357edcc56b59d3874b3b453\spring-web-6.1.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jsr310\2.15.3\4a20a0e104931bfa72f24ef358c2eb63f1ef2aaf\jackson-datatype-jsr310-2.15.3.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.module\jackson-module-parameter-names\2.15.3\8d251b90c5358677e7d8161e0c2488e6f84f49da\jackson-module-parameter-names-2.15.3.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jdk8\2.15.3\80158cb020c7bd4e4ba94d8d752a65729dc943b2\jackson-datatype-jdk8-2.15.3.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.15.3\a734bc2c47a9453c4efa772461a3aeb273c010d9\jackson-databind-2.15.3.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-autoconfigure\3.2.0\29b231378146bd6606e75389297f3a7d55476b87\spring-boot-autoconfigure-3.2.0.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\3.2.0\4088ad23df91481bc7415cbfa068c423ccb7e54e\spring-boot-3.2.0.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-logging\3.2.0\54998ab18f16e8d3a6e46c3d326f2de41c0b1ce0\spring-boot-starter-logging-3.2.0.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-core\6.1.1\22d73bef97aff8a74a992716fe1aafc8f8a8a68d\spring-core-6.1.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.yaml\snakeyaml\2.2\3af797a25458550a16bf89acc8e4ab2b7f2bfce0\snakeyaml-2.2.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context\6.1.1\610d7dd3f62d22d42b993a201e3110649b68e17\spring-context-6.1.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aop\6.1.1\66cb0e08770d4523ae3976b0b791cde767466c61\spring-aop-6.1.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-beans\6.1.1\6af88af13193acf2197bc0a42f0ec4e5c481bfe9\spring-beans-6.1.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-expression\6.1.1\807700a64cb055ed85af189d1fa0702bc0d2efba\spring-expression-6.1.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\io.micrometer\micrometer-observation\1.12.0\4f4981faa7968441d0092107df9b750e057374af\micrometer-observation-1.12.0.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.15.3\79baf4e605eb3bbb60b1c475d44a7aecceea1d60\jackson-annotations-2.15.3.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.15.3\60d600567c1862840397bf9ff5a92398edc5797b\jackson-core-2.15.3.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-classic\1.4.11\54450c0c783e896a1a6d88c043bd2f1daba1c382\logback-classic-1.4.11.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-to-slf4j\2.21.1\d77b2ba81711ed596cd797cc2b5b5bd7409d841c\log4j-to-slf4j-2.21.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.slf4j\jul-to-slf4j\2.0.9\9ef7c70b248185845f013f49a33ff9ca65b7975\jul-to-slf4j-2.0.9.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jcl\6.1.1\69ebbf7bad707d34e81d00213c756bc6fcc31dd7\spring-jcl-6.1.1.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\io.micrometer\micrometer-commons\1.12.0\2436654d439bd4ff6aad6419519357be8ba4f0d\micrometer-commons-1.12.0.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-core\1.4.11\2f9f280219a9922a74200eaf7138c4c17fb87c0f\logback-core-1.4.11.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\2.0.9\7cf2726fdcfbc8610f9a71fb3ed639871f315340\slf4j-api-2.0.9.jar;C:\Users\OWNER\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.21.1\74c65e87b9ce1694a01524e192d7be989ba70486\log4j-api-2.21.1.jar" hello.servlet.ServletApplication . ____ _ /\\ / ___'_ __ ( _)_ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.2.0) 2023-12-20T03:30:48.422+09:00 INFO 16572 --- [ main] hello.servlet.ServletApplication : Starting ServletApplication using Java 17.0.9 with PID 16572 (C:\Users\OWNER\OneDrive\바탕 화면\ton\servlet (2)\servlet\out\production\classes started by OWNER in C:\Users\OWNER\OneDrive\바탕 화면\ton\servlet (2)\servlet) 2023-12-20T03:30:48.426+09:00 INFO 16572 --- [ main] hello.servlet.ServletApplication : No active profile set, falling back to 1 default profile: "default" 2023-12-20T03:30:49.081+09:00 WARN 16572 --- [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failed 2023-12-20T03:30:49.091+09:00 INFO 16572 --- [ main] .s.b.a.l.ConditionEvaluationReportLogger : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2023-12-20T03:30:49.113+09:00 ERROR 16572 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failed 서버가 안열립니다 그리고 run이 HelloServerlet을 실행시킬때 RUN이 비활성화 됩니다..

  • spring
  • mvc
do_do1004 댓글 1 좋아요 0 조회수 1262

rs.next()의 동작 방식이 궁금합니다.

해결됨

스프링 DB 1편 - 데이터 접근 핵심 원리

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] ResultSet에서 데이터를 얻어오기 위해 rs.next ()를 계속 수행하며 진행하는데 여기에서 궁금한게 ResultSet은 첫 쿼리로 모든 데이터를 받아온 뒤에 단순히 메모리에서 커서를 이동하는 건가요? 아니면 rs.next ()가 호출될때마다 DB에서 새로 데이터를 받아오는건가요?

  • spring
  • mvc
  • spring-jdbc
kt 댓글 1 좋아요 1 조회수 244

자바버전 다 동일하게 맞춰야 하나요?

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. Gradle JVM 과 build.gradle 또 프로젝트 자바 버전들이 다 동일해야 하나요? 달라도 딱히 오류 안나지만 나중에 프로젝트 만들 시 오류가 생길까 싶어서 동일하게 맞춰야하나 질문드려요! 저는 자바 19버전을 갖고 있습니다!

  • java
  • spring
  • mvc
  • spring-boot
o3oboo 댓글 1 좋아요 0 조회수 1264

시큐리티 프로젝트..

미해결

스프링 프레임워크는 내 손에 [스프1탄]

부트말고 스프링프레임워크에서 시큐리티 기능을 이용한 회원별 권한 부여된 게시판 기능을 만들려고 하는데 SPRING MVC02와 03, 04 를 한 프로젝트 안에 다 작업해도될까요?? 필요한 기능이 관리자 - 글쓰기(사진 멀티업로드) 이용자 - 조회, 찜기능 비회원- 조회 이런것들입니다. 시큐리티 기능을 활용해서 사이트를 만들어보려고 하는데 어떤 챕터를 활용하면 좋을지 의견 부탁드립니다..! 기존 세팅은 되어 있어서 MVC01 은 제외하고 작업하면 될 것 같은데 이렇게 되면 MVC02부터 실행해도 괜찮은지도 말씀 부탁드립니다..! 감사합니다.

  • jsp
  • spring
  • mvc
  • spring-security
김서영 댓글 1 좋아요 0 조회수 271

화이트 리스트 경우 인증체크 메서드 질문

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. requestURI와 whitelist에 있는 값이 매칭이 된다면 인증체크를 하고, 매칭되는 값이 없다면 인증체크를 하지않는 함수인거는 이해했습니다. 리턴값 코드 이해가 잘 안되는거같아서 질문 남깁니다. 위 아래 코드가 같은건가요 ? 강사님이 알려주신 코드는 이해가 잘 안가서 다시한번 짜봤습니다 ㅠㅠ private boolean isLoginCheckPath(String requestURI){ if(PatternMatchUtils.simpleMatch(whitelist,requestURI)){ return false; } return true; } private boolean isLoginCheckPath(String requestURI){ return !PatternMatchUtils.simpleMatch(whitelist,requestURI);

  • spring
  • mvc
deoksam 댓글 1 좋아요 0 조회수 354

org.springframework.beans.factory.UnsatisfiedDependencyException

미해결

스프링 프레임워크는 내 손에 [스프1탄]

MVC06 소스 톰캣 실행 시 아래 오류가 발생합니다. ERROR: org.springframework.web.servlet.DispatcherServlet - Context initialization failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController': Unsatisfied dependency expressed through field 'memberUserDetailsService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ' kr.ody.apps.security .MemberUserDetailsService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject( AutowiredAnnotationBeanPostProcessor.java:586 ) at org.springframework.beans.factory.annotation.InjectionMetadata.inject( InjectionMetadata.java:91 ) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues( AutowiredAnnotationBeanPostProcessor.java:372 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.populateBean( AbstractAutowireCapableBeanFactory.java:1344 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:582 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:502 ) 구글링으로 파악이 안되네요. 원인이 무엇일까요?

  • jsp
  • spring
  • mvc
  • spring-security
좋은사람 댓글 1 좋아요 0 조회수 443

members/new 회원가입 whitelabel 오류

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] 안녕하세요, localhost:8080/members/new에 접근하면 whitelabel에러가 떠서 이유가 무엇인지 질문 드립니다. 오타같은 것도 없고 구조도 정확한 것 같은데 어떤 부분이 문제인건지 전혀 모르겠습니다... hello.hellospring/controller/HomeController hello.hellospring/controller/MemberController resources/templates/home.html resources/templates/members/createMemberForm.html 폴더 구조 실행 결과

  • java
  • spring
  • mvc
  • spring-boot
새우좋아하새우? 댓글 2 좋아요 0 조회수 563

HttpServletResponse와 Model의 차이점이 궁금합니다.

미해결

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

'로그인 처리하기 - 쿠키사용' 부분을 듣고 제가 모르는 부분이 있는 것 같아 질문 남깁니다. 쿠키를 생성하고 쿠키를 보낼 때 response.addCookie(idCookie)를 했는데 Model에도 model.addAttribute(idCookie)가 가능한지가 궁금합니다. 만약 가능하다면 어떤것을 쓰는것이 더 좋을지 만약 불가능하다면 불가능한 이유가 궁금합니다.

  • spring
  • mvc
  • model
  • httpservletresponse
서정원 댓글 1 좋아요 1 조회수 380

오류 발생 시 Postman에서 항상 JSON형식으로 반환됩니다.

미해결

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

error/500.html 을 만들고 @RequiredArgsConstructor @Controller public class ProductController { @GetMapping("/api/response") public String responseStatusEx1() { throw new RuntimeException(); } } 위와 같이 연습코드를 작성하면 웹페이지에서는 제가만든 500오류페이지가 나오는데 PostMan에서는 { "timestamp": "2023-12-19T03:41:17.680+00:00", "status": 500, "error": "Internal Server Error", "path": "/api/response-status-ex1" } Accept: text/html 이면 잘 나오나 Accept: */* 이면 위와같이 항상 Json형식으로 나옵니다. 우선순위가 Json형식이 높아서 그런건지 알려주시면 감사하겠습니다.

  • spring
  • mvc
코딩먹는하마 댓글 1 좋아요 0 조회수 521

섹션 2 - 셀렉트 박스 강의 내용에서 발생된`MethodArgumentNotValidException` 를 고치지 못하고 있습니다...

해결됨

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

셀렉트 박스를 만들기 위해 강의에서 추가하는 코드를 저도 추가한 후 동일하게 서버를 띄웠지만, 2023-12-19T09:06:49.880+09:00 WARN 11452 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in public java.lang.String hello.itemservice.web.form.FormItemController.addItem(hello.itemservice.domain.item.Item,org.springframework.web.servlet.mvc.support.RedirectAttributes): [Field error in object 'item' on field 'deliveryCode': rejected value [FAST]; codes [typeMismatch.item.deliveryCode,typeMismatch.deliveryCode,typeMismatch.hello.itemservice.domain.item.DeliveryCode,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [item.deliveryCode,deliveryCode]; arguments []; default message [deliveryCode]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'hello.itemservice.domain.item.DeliveryCode' for property 'deliveryCode'; Cannot convert value of type 'java.lang.String' to required type 'hello.itemservice.domain.item.DeliveryCode' for property 'deliveryCode': no matching editors or conversion strategy found]] ] 라고 에러가 뜹니다. 에러 내용대로 고치려면 DeliveryCode 선언할 때 컨버터를 정의해야 하는 것 같은데, 그렇게 코딩한다면 타임리프 기능에서 벗어나는 방식으로 코딩하는 것 같네요.. 아래는 제 코드에 추가된 내용들입니다. FormController @ModelAttribute("deliveryCodes") public List<DeliveryCode> deliveryCodes() { List<DeliveryCode> deliveryCodes = new ArrayList<>(); deliveryCodes.add(new DeliveryCode("FAST", "빠른 배송")); deliveryCodes.add(new DeliveryCode("NORMAL", "일반 배송")); deliveryCodes.add(new DeliveryCode("SLOW", "느린 배송")); return deliveryCodes; } addForm.html <!-- SELECT --> <div> <div>배송 방식</div> <select th:field="*{deliveryCode}" class="form-select"> <option value="">==배송 방식 선택==</option> <option th:each="deliveryCode : ${deliveryCodes}" th:value="${deliveryCode.code} " th:text="${deliveryCode.displayName}">FAST</option> </select> </div> <hr class="my-4"> 추가된 코드 외에 다른 곳에서부터 에러가 발생되는 것일 수도 있어 프로젝트도 공유해볼게요. https://drive.google.com/drive/folders/1CrfrMJEdHRJDvrEAMSyDAOr9xLac7I4a?usp=sharing

  • spring
  • mvc
신제우 댓글 1 좋아요 1 조회수 305

스프링 파일업로드에서 오류뜹니다

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] java.lang.IllegalArgumentException: Name for argument of type [java.lang.String] not specified, and parameter name information not found in class file either. v1과 v2에서는 문제가없는데요 /spring/upload에서 제출하면 500에러뜨면서 illegalArgumentexception뜹니다. 어떻게 해결해야할지 모르겠습니다

  • spring
  • mvc
이보석 댓글 1 좋아요 1 조회수 535

맥환경 빌드 후 실행하기가 안됩니다ㅠㅠ

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 맥북 환경에서 버전도 바꾸고 빌드하는 데까지는 성공했습니다. 그런데 명령어를 실행하니 실행되지 않고 아래와 같은 오류가 발생합니다. MacBookAir libs % java -jar hellospring-0.0.1-SNAPSHOT.jar Exception in thread "main" java.lang.UnsupportedClassVersionError: hello/hellospring/HellospringApplication has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 64.0 at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass( ClassLoader.java:1013 ) at java.base/ java.security .SecureClassLoader.defineClass( SecureClassLoader.java:150 ) at java.base/ java.net .URLClassLoader.defineClass( URLClassLoader.java:524 ) at java.base/ java.net .URLClassLoader$ 1.run ( URLClassLoader.java:427 ) at java.base/ java.net .URLClassLoader$ 1.run ( URLClassLoader.java:421 ) at java.base/ java.security .AccessController.doPrivileged( AccessController.java:714 ) at java.base/ java.net .URLClassLoader.findClass( URLClassLoader.java:420 ) at java.base/java.lang.ClassLoader.loadClass( ClassLoader.java:588 ) at org.springframework.boot.loader.net .protocol.jar.JarUrlClassLoader.loadClass( JarUrlClassLoader.java:104 ) at org.springframework.boot.loader.launch.LaunchedClassLoader.loadClass( LaunchedClassLoader.java:91 ) at java.base/java.lang.ClassLoader.loadClass( ClassLoader.java:521 ) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName( Class.java:496 ) at java.base/java.lang.Class.forName( Class.java:475 ) at org.springframework.boot.loader.launch.Launcher.launch( Launcher.java:88 ) at org.springframework.boot.loader.launch.Launcher.launch( Launcher.java:53 ) at org.springframework.boot.loader.launch.JarLauncher.main( JarLauncher.java:58 )

  • java
  • spring
  • mvc
  • spring-boot
jsub5646 댓글 2 좋아요 0 조회수 944

java: cannot access java.nio.file.Path 오류

해결됨

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

안녕하세요. 강의 잘 듣고 있습니다. 제 개인 프로젝트에서 multipartfile을 활용한 파일 업로드 기능을 구현하고 있는데 빌드 과정에서 아래와 같은 오류가 발생합니다. jdk버전은 11버전입니다. 진짜 하루종일 이것저것 다해봤는데 원인을 모르겠어요.. file.transferTo() 부분에서 에러가 발생하는데 미치겠습니다.

  • spring
  • mvc
정영준 댓글 2 좋아요 0 조회수 565

자바스크립트 파일을 별도로 만들게되는 경우

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 자바스크립트 파일을 별도로 만들게 되는 경우에는, 자바스크립트 인라인 사용할 수 있는 방법이 없나요? <script type="text/javascript" th:inline="javascript" th:src="@{/javascript.js}"></script> 위의 코드처럼, 넣어봤는데 별도의 파일이라 그런지 동적으로 변환되지 않고 그대로 인식되어버리네용 😅 자바스크립트 인라인을 사용하기 위해서는, 항상 html파일에 script 태그를 함께 사용해야만하나요?

  • spring
  • mvc
김학 댓글 1 좋아요 1 조회수 394

@RequestParam (name= ) 설정을 안했을때

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] @GetMapping("/hello-v2") public String helloV2(@RequestParam(name = "data") Integer data) { System.out.println("data = " + data); return "ok"; 영상에서는 (name="data")를 안해도 화면이 잘 출력이되는데 저는 (name="data") 이거를 안넣으면 whitelabel이 뜹니다. 뭔가 설정이 잘못된건가요?

  • spring
  • mvc
이보석 댓글 1 좋아요 0 조회수 556

주소창에 주소를 쓰고 엔터를 누르면 항상 GET 요청 메시지로 보내나요?

해결됨

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 네이버나 구글에서 검색하는 것이 아니라, 웹 브라우저의 주소창에서 바로 특정 사이트의 URL을 써서 엔터 누르면 항상 GET 방식으로 요청 메시지를 보내나요? 아니면 이것도 POST 등의 다른 방식으로 구현할 수 있나요?

  • spring
  • mvc
11 1 댓글 1 좋아요 0 조회수 269

OpenJDK64-Bit

미해결

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

OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release. 아래의 오류는 어떻게 해결해야 하는지 잘 모르겠습니다...

  • java
  • spring
  • mvc
  • spring-boot
최승빈 댓글 3 좋아요 0 조회수 396

콘솔창 빨간 오류

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 계속 이렇게 뜨는데 런타임때 오류는 딱히 발생하지 않습니다 런타임 이후 런타임을 중지 할때 이런 오류가 계속뜨는데 이유를 모르겠습니다.

  • java
  • spring
  • mvc
  • spring-boot
tlsalstjr58 댓글 2 좋아요 1 조회수 650

인기 태그

인프런 TOP Writers

주간 인기글