묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 부트 - 핵심 원리와 활용
NoClassDefFoundError가 아닌 UnsupportedClassVersionError가 뜨는 경우 해결방법
NoClassDefFoundError가 아닌 UnsupportedClassVersionError가 발생하는 경우 java 버전이 하위 버전인 경우일 때 나타나는 것을 확인했습니다.자바 17 버전으로 하셔야 강의처럼 NoClassDefFoundError가 나타납니다.아래는 8, 11 버전에 대한 에러를 확인해서 공유드립니다ㅎㅎError: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: hello/embed/EmbedTomcatSpringMain has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:601)위의 에러는 java8 버전일 때 나타나는 에러입니다.Error: LinkageError occurred while loading main class hello.embed.EmbedTomcatSpringMain java.lang.UnsupportedClassVersionError: hello/embed/EmbedTomcatSpringMain has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0위의 에러는 java11 버전일 때 나타나는 에러입니다. 프로젝트랑 환경변수가 java17로 되어 있어도 cmd나 터미널을 이용해서 자바버전을 확인하세요
-
미해결스프링 부트 - 핵심 원리와 활용
WAR 빌드에 관한 질문입니다
War파일의 압축을 풀 때 window cmd에서 jar -xvf server-0.0.1-SNAPSHOT.war명령어를 칠 때 'jar'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 라는 문구가 자꾸 나옵니다. java랑 javac 설치 되어있는데도 오류가 나고 구글링을 해봐도 답을 찾을 수가 없습니다 ㅠㅠ
-
미해결스프링 부트 - 핵심 원리와 활용
모니터링
좋은 강의 올려주셔서 정말 감사합니다. spring boot, jvm을 모니터링하고 있는데 system cpu, proess cpu 같은 치수들을 보면서 무엇이 위험한 수치이고 어떻게 대응해야 하는 지 감이 오지 않아서제 나름대로 공식 문서나 구글링을 찾아보곤 하는데 혹시 어떤 문서를 읽는 것이 좋은 가요? 예를 들면 cpu 사용량이 0.006정도 되는데 얼마의 치수가 되면 위험하고 대응해야 하는 지 궁금합니다... 읽어주셔서 정말 감사합니다.
-
미해결스프링 부트 - 핵심 원리와 활용
com.gorylenko.gradle-git-properties 스프링부트 2 에서 안됨.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의에서는 Springboot 3 + JDK 17 환경인데요.com.gorylenko.gradle-git-properties 플러그인을 build.gradle 에 반영하고, build 하면 강의에서 보여주신 것처럼 git.properties 파일이 정상적으로 생성됩니다.그러나, SpringBoot 2.7 + JDK 11 환경에서 동일하게 작업해보면, git.properties 파일이 생성되지 않습니다.com.gorylenko.gradle-git-properties 플러그인의 버전 호환성 문제일까요?
-
미해결스프링 부트 - 핵심 원리와 활용
프로메테우스, 그라파나 설치 서버 위치
[질문 내용]강의에서는 프로메테우스와 그라파나를 개발용 PC 와 같은 localhost 에 설치하였는데,이것은 강의 교육용이기 때문에 localhost 에 설치한 것인가요?실제 운영시에는 프로메테우스 서버 또는 그라파나 서버를 별도로 운영하나요?
-
미해결스프링 부트 - 핵심 원리와 활용
Lombok 생성자
@Data public class Member { private String memberId; private String name; public Member() { } public Member(String memberId, String name) { this.memberId = memberId; this.name = name; } } 기본생성자와 모든필드를 가지는 생성자도 Lombok을 통해서 @NoArgsConstructor @AllArgsConstructor로 어노테이션으로 등록할 수 있는걸로 알고 있는데 @Data만 사용하고 생성자는 어노테이션으로 등록 안하시는 이유가 있을까요?@Data의 경우 @Setter을 포함하기 때문에 조심히 사용해야 된다 하셨는데 이처럼 주의해야 될 점이 있는건지 궁금합니다
-
미해결스프링 부트 - 핵심 원리와 활용
@Value 외부설정관련 질문입니다.
안녕하세요..! 훌륭한 강의 잘 듣고있는 주니어개발자입니다!!인텔리제이 버전이 달라서 그런가 예제코드를 그대로 썻는데도 예외가 납니다.Caused by: org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.time.Duration'; Failed to convert from type [java.lang.String] to type [@org.springframework.beans.factory.annotation.Value java.time.Duration] for value '{my.datasource.etc.timeout}' @Value로 가져오는 timeout을 Duration 타입으로 바꿀 수 없다고 하네요그래서 charsequence나 string 타입으로 받아서 timeout을 Duration.parse(timeout) 으로변환해서 MyDataSource를 생성하는 식으로도 시도해봤는데 안되긴 마찬가지였습니다.또 위에 max-connection 받는 문법을 new Integer로 바꾼거처럼Duration도 {new Dureation('${~ 로 바꿔서 해보기도 했는데잘못된 문법이라고 하네요.. 어떻게 해결하면 좋을까요..ㅠㅠ 부탁드립니다.
-
해결됨스프링 부트 - 핵심 원리와 활용
예제 코드 작성시 왜 생성자를 @Autowired 안 쓰고 명시 해서 만드시나요?
강사님 안녕하세요~스프링부트 강의 잘 듣고 있습니다.. 자동구성 > 예제만들기 동영상 중 @Repository 만들 때 왜 public MemberRepository(JdbcTemplate templage)주입받게 하나 @Autowired 로하면 안되나요? ( 불필요하게 코드도 만들고 길어진다고 생각이 들어서요... )테스트 코드 작성 인지 때문 인지.. 강사님의 강의 대부분의 동영상에서는 생성자를 꼭 만드시더라구요오토와이어드 안 쓰구요 제가 기본 개념이 안되어서 이런 질문을 드리는 건지 죄송하고 부끄럽지만 질문 드립니다 #스프링#스프링부트#spring#boot#spring-boot#Autowired#생성자#왜#주입#받게#하나
-
미해결스프링 부트 - 핵심 원리와 활용
강의 교재 오타
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]자동구성.pdf 파일에 Environment가 아닌 Enviroment로 표기되어 있습니다.
-
해결됨스프링 부트 - 핵심 원리와 활용
Mac Prometheus 실행 오류
macbook apple silicon (M1 이상) 아키텍처를 사용하시는 분은..Prometheus 를 설치하실때amd64가 아닌 arm64 로 설치하시면 보안 허용 필요없이 진행할 수 있습니다.. 강의에서는 rosetta 가 설치된 환경이라 amd64 파일을 실행할 수 있었던 것으로 생각됩니다..rosetta 가 설치되지 않은 macbook 에서 amd64 파일로 진행 시,아래와 같은 에러 메시지를 만날 수 있었습니다.zsh: bad CPU type in executable: ./prometheus 특별한 이유가 없다면 강의자료 수정 필요해 보입니다.. grafana의 경우 darwin arm64 지원이 없어서 rosetta 2 를 설치하여 실행할 수 있었습니다.
-
미해결스프링 부트 - 핵심 원리와 활용
서블릿 컨테이너 초기화 2 강의 듣는 중..
다음과 같은 에러가 발생합니다."C:\Program Files\Java\jdk-17\bin\java.exe" -javaagent:C:\Users\Administrator\AppData\Local\JetBrains\Toolbox\apps\IDEA-C\ch-0\223.8836.41\lib\idea_rt.jar=58224:C:\Users\Administrator\AppData\Local\JetBrains\Toolbox\apps\IDEA-C\ch-0\223.8836.41\bin -Dfile.encoding=x-windows-949 -classpath C:\tool\tomcat-runner\tomcat-runner\bin\bootstrap.jar;C:\tool\tomcat-runner\tomcat-runner\bin\commons-daemon.jar;C:\tool\tomcat-runner\tomcat-runner\bin\tomcat-juli.jar;C:\tool\tomcat-runner\tomcat-runner\lib\annotations-api.jar;C:\tool\tomcat-runner\tomcat-runner\lib\catalina-ant.jar;C:\tool\tomcat-runner\tomcat-runner\lib\catalina-ha.jar;C:\tool\tomcat-runner\tomcat-runner\lib\catalina-ssi.jar;C:\tool\tomcat-runner\tomcat-runner\lib\catalina-storeconfig.jar;C:\tool\tomcat-runner\tomcat-runner\lib\catalina-tribes.jar;C:\tool\tomcat-runner\tomcat-runner\lib\catalina.jar;C:\tool\tomcat-runner\tomcat-runner\lib\ecj-4.26.jar;C:\tool\tomcat-runner\tomcat-runner\lib\el-api.jar;C:\tool\tomcat-runner\tomcat-runner\lib\jakartaee-migration-1.0.6-shaded.jar;C:\tool\tomcat-runner\tomcat-runner\lib\jasper-el.jar;C:\tool\tomcat-runner\tomcat-runner\lib\jasper.jar;C:\tool\tomcat-runner\tomcat-runner\lib\jaspic-api.jar;C:\tool\tomcat-runner\tomcat-runner\lib\jsp-api.jar;C:\tool\tomcat-runner\tomcat-runner\lib\servlet-api.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-api.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-coyote.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-dbcp.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-i18n-cs.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-i18n-de.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-i18n-es.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-i18n-fr.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-i18n-ja.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-i18n-ko.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-i18n-pt-BR.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-i18n-ru.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-i18n-zh-CN.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-jdbc.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-jni.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-util-scan.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-util.jar;C:\tool\tomcat-runner\tomcat-runner\lib\tomcat-websocket.jar;C:\tool\tomcat-runner\tomcat-runner\lib\websocket-api.jar;C:\tool\tomcat-runner\tomcat-runner\lib\websocket-client-api.jar org.apache.catalina.startup.Bootstrap start3월 19, 2023 5:15:29 오후 org.apache.catalina.core.StandardContext setPathWARNING: 컨텍스트 경로는 반드시 빈 문자열이거나, 또는 '/'로 시작하고 '/'로 끝나지 않는 문자열이어야 합니다. 해당 경로 [/]은(는) 이 조건을 충족시키지 않아 [](으)로 변경되었습니다.3월 19, 2023 5:15:29 오후 org.apache.catalina.startup.VersionLoggerListener logINFO: 서버 버전 이름: Apache Tomcat/10.1.73월 19, 2023 5:15:29 오후 org.apache.catalina.startup.VersionLoggerListener logINFO: Server 빌드 시각: Feb 27 2023 20:25:27 UTC3월 19, 2023 5:15:29 오후 org.apache.catalina.startup.VersionLoggerListener logINFO: Server 버전 번호: 10.1.7.03월 19, 2023 5:15:29 오후 org.apache.catalina.startup.VersionLoggerListener logINFO: 운영체제 이름: Windows 113월 19, 2023 5:15:29 오후 org.apache.catalina.startup.VersionLoggerListener logINFO: 운영체제 버전: 10.03월 19, 2023 5:15:29 오후 org.apache.catalina.startup.VersionLoggerListener logINFO: 아키텍처: amd643월 19, 2023 5:15:29 오후 org.apache.catalina.startup.VersionLoggerListener logINFO: 자바 홈: C:\Program Files\Java\jdk-173월 19, 2023 5:15:29 오후 org.apache.catalina.startup.VersionLoggerListener logINFO: JVM 버전: 17.0.6+9-LTS-1903월 19, 2023 5:15:29 오후 org.apache.catalina.startup.VersionLoggerListener logINFO: JVM 벤더: Oracle Corporation3월 19, 2023 5:15:29 오후 org.apache.catalina.startup.VersionLoggerListener logINFO: CATALINA_BASE: C:\tool\tomcat-runner\tomcat-runner3월 19, 2023 5:15:29 오후 org.apache.catalina.startup.VersionLoggerListener logINFO: CATALINA_HOME: C:\tool\tomcat-runner\tomcat-runner3월 19, 2023 5:15:29 오후 org.apache.catalina.startup.VersionLoggerListener logINFO: 명령 행 아규먼트: -javaagent:C:\Users\Administrator\AppData\Local\JetBrains\Toolbox\apps\IDEA-C\ch-0\223.8836.41\lib\idea_rt.jar=58224:C:\Users\Administrator\AppData\Local\JetBrains\Toolbox\apps\IDEA-C\ch-0\223.8836.41\bin3월 19, 2023 5:15:29 오후 org.apache.catalina.startup.VersionLoggerListener logINFO: 명령 행 아규먼트: -Dfile.encoding=x-windows-9493월 19, 2023 5:15:29 오후 org.apache.catalina.core.AprLifecycleListener lifecycleEventINFO: 프로덕션 환경들에서 최적의 성능을 제공하는, APR 기반 Apache Tomcat Native 라이브러리가, 다음 java.library.path에서 발견되지 않습니다: [C:\Program Files\Java\jdk-17\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Common Files\Oracle\Java\javapath;C:\oraclexe\app\oracle\product\11.2.0\server\bin;C:\Program Files (x86)\NAT Service;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\nodejs\;C:\Tools\jdk-16.0.1\bin;C:\Program Files\Git\cmd;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Users\Administrator\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Administrator\AppData\Local\JetBrains\Toolbox\scripts;.]3월 19, 2023 5:15:30 오후 org.apache.coyote.AbstractProtocol initINFO: 프로토콜 핸들러 ["http-nio-8080"]을(를) 초기화합니다.3월 19, 2023 5:15:30 오후 org.apache.catalina.startup.Catalina loadINFO: [366] 밀리초 내에 서버가 초기화되었습니다.3월 19, 2023 5:15:30 오후 org.apache.catalina.core.StandardService startInternalINFO: 서비스 [Catalina]을(를) 시작합니다.3월 19, 2023 5:15:30 오후 org.apache.catalina.core.StandardEngine startInternalINFO: 서버 엔진을 시작합니다: [Apache Tomcat/10.1.7]3월 19, 2023 5:15:30 오후 org.apache.jasper.servlet.TldScanner scanJarsINFO: 적어도 하나의 JAR가 TLD들을 찾기 위해 스캔되었으나 아무 것도 찾지 못했습니다. 스캔했으나 TLD가 없는 JAR들의 전체 목록을 보시려면, 로그 레벨을 디버그 레벨로 설정하십시오. 스캔 과정에서 불필요한 JAR들을 건너뛰면, 시스템 시작 시간과 JSP 컴파일 시간을 단축시킬 수 있습니다.MyContainerInitV1.onStartupMyContainerInitV1 c = nullMyContainerInitV1 ctx = org.apache.catalina.core.ApplicationContextFacade@4c5474f5MyContainerInitV2.onStartupMyContainerInitV2 c = [class hello.container.AppInitV1Servlet, class hello.container.AppInitServlet]MyContainerInitV2 ctx = org.apache.catalina.core.ApplicationContextFacade@4c5474f5AppInitServlet.onStartupAppInitServlet.onStartup3월 19, 2023 5:15:30 오후 org.apache.catalina.core.ContainerBase startInternalSEVERE: 자식 컨테이너를 시작 중 실패했습니다.java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 구성요소 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]을(를) 시작하지 못했습니다. at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:878) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:846) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:871) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:241) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:428) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:913) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Catalina.start(Catalina.java:795) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)Caused by: org.apache.catalina.LifecycleException: 구성요소 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]을(를) 시작하지 못했습니다. at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:871) ... 21 moreCaused by: java.lang.RuntimeException: java.lang.NullPointerException: Cannot invoke "jakarta.servlet.ServletRegistration$Dynamic.addMapping(String[])" because "helloServlet" is null at hello.container.MyContainerInitV2.onStartup(MyContainerInitV2.java:26) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4875) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ... 27 moreCaused by: java.lang.NullPointerException: Cannot invoke "jakarta.servlet.ServletRegistration$Dynamic.addMapping(String[])" because "helloServlet" is null at hello.container.AppInitServlet.onStartup(AppInitServlet.java:15) at hello.container.MyContainerInitV2.onStartup(MyContainerInitV2.java:24) ... 29 more3월 19, 2023 5:15:30 오후 org.apache.catalina.core.ContainerBase startInternalSEVERE: 자식 컨테이너를 시작 중 실패했습니다.java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 자식 컨테이너를 시작 중 실패했습니다. at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:878) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:241) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:428) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:913) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Catalina.start(Catalina.java:795) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)Caused by: org.apache.catalina.LifecycleException: 자식 컨테이너를 시작 중 실패했습니다. at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:890) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:846) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:871) ... 13 moreCaused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 구성요소 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]을(를) 시작하지 못했습니다. at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:878) ... 21 moreCaused by: org.apache.catalina.LifecycleException: 구성요소 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]을(를) 시작하지 못했습니다. at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:871) ... 21 moreCaused by: java.lang.RuntimeException: java.lang.NullPointerException: Cannot invoke "jakarta.servlet.ServletRegistration$Dynamic.addMapping(String[])" because "helloServlet" is null at hello.container.MyContainerInitV2.onStartup(MyContainerInitV2.java:26) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4875) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ... 27 moreCaused by: java.lang.NullPointerException: Cannot invoke "jakarta.servlet.ServletRegistration$Dynamic.addMapping(String[])" because "helloServlet" is null at hello.container.AppInitServlet.onStartup(AppInitServlet.java:15) at hello.container.MyContainerInitV2.onStartup(MyContainerInitV2.java:24) ... 29 more3월 19, 2023 5:15:30 오후 org.apache.catalina.startup.Catalina startSEVERE: 필수 항목인 서버 구성요소가 제대로 시작되지 못하여, Tomcat이 시작될 수 없습니다.org.apache.catalina.LifecycleException: 자식 컨테이너를 시작 중 실패했습니다. at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:890) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:241) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:428) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:913) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Catalina.start(Catalina.java:795) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 자식 컨테이너를 시작 중 실패했습니다. at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:878) ... 13 moreCaused by: org.apache.catalina.LifecycleException: 자식 컨테이너를 시작 중 실패했습니다. at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:890) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:846) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:871) ... 13 moreCaused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 구성요소 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]을(를) 시작하지 못했습니다. at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:878) ... 21 moreCaused by: org.apache.catalina.LifecycleException: 구성요소 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]을(를) 시작하지 못했습니다. at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:871) ... 21 moreCaused by: java.lang.RuntimeException: java.lang.NullPointerException: Cannot invoke "jakarta.servlet.ServletRegistration$Dynamic.addMapping(String[])" because "helloServlet" is null at hello.container.MyContainerInitV2.onStartup(MyContainerInitV2.java:26) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4875) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ... 27 moreCaused by: java.lang.NullPointerException: Cannot invoke "jakarta.servlet.ServletRegistration$Dynamic.addMapping(String[])" because "helloServlet" is null at hello.container.AppInitServlet.onStartup(AppInitServlet.java:15) at hello.container.MyContainerInitV2.onStartup(MyContainerInitV2.java:24) ... 29 more3월 19, 2023 5:15:30 오후 org.apache.coyote.AbstractProtocol pauseINFO: 프로토콜 핸들러 ["http-nio-8080"]을(를) 일시 정지 중3월 19, 2023 5:15:30 오후 org.apache.catalina.core.StandardService stopInternalINFO: 서비스 [Catalina]을(를) 중지시킵니다.3월 19, 2023 5:15:30 오후 org.apache.coyote.AbstractProtocol destroyINFO: 프로토콜 핸들러 ["http-nio-8080"]을(를) 소멸시킵니다.3월 19, 2023 5:15:30 오후 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesObjectStreamClassCachesWARNING: Java 9 또는 이후 버전을 사용할 때에는, "--add-opens=java.base/java.io=ALL-UNNAMED" 을(를) JVM 명령행 아규먼트들에 추가해서, ObjectStream 캐시 메모리 릭 방지 옵션을 활성화할 필요가 있습니다. 또는 원하시는 경우, ObjectStream 클래스 캐시 메모리 릭 방지 옵션을 비활성화해서 이 경고 메시지를 없앨 수도 있습니다.3월 19, 2023 5:15:30 오후 org.apache.catalina.loader.WebappClassLoaderBase checkThreadLocalsForLeaksWARNING: ThreadLocal 메모리 누수 탐지를 위해서는 "--add-opens=java.base/java.lang=ALL-UNNAMED" 자바 명령 행 아규먼트를 추가하십시오. 또는 이 경고 메시지를 없애고 싶다면 ThreadLocal 메모리 누수 탐지 옵션을 비활성화 시키십시오.3월 19, 2023 5:15:30 오후 org.apache.catalina.loader.WebappClassLoaderBase clearReferencesRmiTargetsWARNING: Java 9에서 실행하면서 RMI Target 메모리 누수 탐지를 사용 가능하게 하려면, "--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED"를 JVM 명령 행 아규먼트에 추가해야 합니다. 또는, RMI Target 메모리 누수 탐지를 사용불능 상태로 설정함으로써, 이 경고를 없앨 수도 있습니다.Process finished with exit code 0
-
미해결스프링 부트 - 핵심 원리와 활용
./gradlew가 powershell에선 작동하는데 git bash에서는 작동 안되는 이유
안녕하세요 내장톰캣 강의를 따라하던 중 ./gradlew build에서 에러가 나서 문의드립니다. 현재 설정정보 사진으로 첨부합니다. 현재 인텔리제이 터미널로는 git bash를 사용하고 있습니다.다 17로 맞췄습니다. 그런데 신기한 점이 있는데 여기서 ./gradlew build --clean를 하면 build failed가 뜹니다. 하지만 powershell에선 성공합니다. jar 파일이 잘 생기구요그리고 powershell에서 java version를 확인하면 git bash와 동일합니다.여기서 git bash에서 gradlew 가 안되는 이유는 뭘까요?
-
해결됨스프링 부트 - 핵심 원리와 활용
한글이 깨지고 로그가 안찍히네요 ㅠ
톰켓 설정 강의에서 하라는 대로 실행을 하였더니 페이지는 잘 뜨는데 한글이 깨지고 TestServlet.service 로그가 안찍히는데 왜그러는지 모르겠어요 ㅠ
-
미해결스프링 부트 - 핵심 원리와 활용
외부 파일 주입
안녕하세요, 외부 파일 경우, application.properties를 만들어두고,서 강의와 같이 url=dev.db.com23 username=dev_user23 password=dev_pw23를 저장해 두었더니, 2023-03-18T10:44:03.240+09:00 INFO 17556 --- [ main] hello.EnvironmentCheck : env url=dev.db.com232023-03-18T10:44:03.240+09:00 INFO 17556 --- [ main] hello.EnvironmentCheck : env username=um9502023-03-18T10:44:03.240+09:00 INFO 17556 --- [ main] hello.EnvironmentCheck : env password=dev_pw23 라고 출력이 됩니다. username만 제대로 나오지 않는데요, 현재 출려고딘 um950이 제 윈도우 계정이거든요...뭔가 더 높은 우선순위로 잡혀있는 것 같은데 이 부분은 어디서 고치거나/확인 할 수 있을까요...?
-
미해결스프링 부트 - 핵심 원리와 활용
Actuator를 Auto scaling 구조에서 Prometheus 모니터링 지표 수집은 어떻게 되나요?
안녕하세요 Actuator Prometheus 공부를 하면서 의문이 하나 생겨 질문 드립니다! 1개의 서버의 Spring application에서 Prometheus 수집하는게 아닌 분산환경에서 actuator를 Prometheus에 연동해도 Grafana에 수집 되는 metric이 알맞은 지표로 수집되는지 궁금합니다! 만약 아니라면 어떤식으로 구성해야되는지 궁금합니다.
-
미해결스프링 부트 - 핵심 원리와 활용
[애플리케이션] 초기화의 의미!
[애플리케이션] 초기화도 결국에는 서블릿을 등록하는 것인데, 왜 굳이 [애플리케이션]이라는 용어를 썼을까요?저 같으면, 그냥 [서블릿 컨테이너 초기화의 또 다른 방법]이라고 설명을 했을텐데....여기서 말하는 애플리케이션의 의미는 무엇인가요??
-
미해결스프링 부트 - 핵심 원리와 활용
./gradlew build 할때 에러가 발생합니다.
안녕하세요. 강의 잘 듣고 있습니다!제가 java 를 17로 설치를 했는데 build 할때 에러가 계속 발생하는데 이유를 잘 모르겠습니다!감사합니다
-
해결됨스프링 부트 - 핵심 원리와 활용
StockConfigV1 오탈자 제보
안녕하세요 영한님!메트릭 등록5 - 게이지 강의 듣던 도중에 오탈자가 있는것 같아서 제보 드립니다StockConfigV1 작성 시 myStockMetric Bean 등록 부분에서 PDF 자료에서는 orderService가 아닌 orderService.getStock() 으로 되어 있습니다.return new MyStockMetric(orderService.getStock(), registry);영상은 orderService로 작성하셔서 강의를 듣는데 무리는 없지만 공유 주신 PDF 자료와는 달라서 제보 드립니다!매번 좋은 강의 내주셔서 감사합니다.
-
해결됨스프링 부트 - 핵심 원리와 활용
선생님 안녕하세요 단순 질문입니다.
스프링 하면 김영한 이라는 말을 많이 들어서 이번에 오픈 기념 처음 수강하는 수강생입니다.자바 17버전을 사용하는 이유가 있을까요?또한 제가 진행한 프로젝트에서는 Maven을 사용했는데 Gradle을 사용하는 이유가 있을까요?Gradle을 2~3년전 안드로이드에서 처음 접해봤었는데 그때는 버그도 많고 그래서 선입견이 조금 있네요 ㅎㅎ,,
-
미해결스프링 부트 - 핵심 원리와 활용
내장톰캣 서블릿 강의를 듣는 도중 문제가 생겼습니다.
[질문 내용] 내장톰캣 서블릿 강의 코드를 따라 작성하고 실행하는 도중 아래와 같은 문제가 발생했습니다. 제가 따로 작성한 코드도 없고 그냥 파일생성과 붙여넣기만 했는데.. 실행이 안되네요.. Gradle 설정 문제인가 싶어 Setting에 default 를 Intellij 로 바꾼 뒤 다시 실행했더니 아래와 같은 에러 메시지가 떴습니다. 그리고 영한님과 다르게 main 실행 후 디랙토리에 아래 사진과 같은 패키지가 생성되었습니다. 문제가 무엇일까요?