30%
69,300원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 부트 - 핵심 원리와 활용
Spring Boot 에서의 Delegating Filter Proxy
SpringBoot를 초기화하는 클래스를 살펴보면 BeanPostProcessor 이후 톰캣을 생성하고 톰캣의 dispatcherServlet에 AnnotationApllicationContext를 주입하는 것을 볼 수 있었습니다.그리고 스프링 부트를 사용한 이후에는 빈을 주입 받을 필요가 있는 필터에 대해서 이제는 DelegatingFilterProxy를 사용 할 필요가 없고 필터 또한 빈으로 등록이 가능하다는 것을 볼 수 있었는데요.개인적인 추론으로는 DispatcherServlet이 이미 초기화가 완료된 ApplicationContext를 알고 있고 이에 따라 Filter 등록 시 다음과 같은 과정이 가능해진건지...제 기억상으로는 웹 요청-> WAS -> 서블릿 컨테이너 -> 필터 순서로 기억을 하고 있는데 스프링 부트 애플리케이션 내부로 WAS가 들어오게 되면서 이러한 일들이 가능해진걸까요??
- 해결됨스프링 부트 - 핵심 원리와 활용
프로메테우스에서 Tomcat Threads 메트릭 안보일 때
https://stackoverflow.com/questions/57572370/monitoring-springboot-2-0-tomcat-server-thread-utilization application.yml 아래처럼 설정해주시면 됩니다.server: tomcat: mbeanregistry: enabled: true
- 미해결스프링 부트 - 핵심 원리와 활용
서버 증설 기준이 되는 CPU, 메모리 사용량
서버 증설 기준이 되는 CPU, 메모리 사용량 등은 서버마다 회사마다 팀마다 정하기 나름인가요? 아니면 통용되는 %가 있나요?
- 미해결스프링 부트 - 핵심 원리와 활용
private 함수 흐름 모니터링
추천해주신 핀포인트로 어떤 함수가 호출되었는지 파악하던 중 private 함수 호출 흐름은 핀포인트에서 알기 어렵더라구요. 혹시, private 함수 호출 흐름을 파악하실 때, 어떤 방법을 사용하시나요? private 함수 내의 로그를 하나하나 작성해주시나요?
- 미해결스프링 부트 - 핵심 원리와 활용
LifecycleException
안녕하세요..섹션2 > 톰캣 설정 - 인텔리J 무료 버전 듣는중인데 tomcat runner를 설정한후 Run을 실행하면 에러가 납니다.강의내용을 따라하면 윈도우 사용자라서 '/'관련 에러가 나는데 '\' 로 바꾸니까 에러가 안납니다.그리고, 이런 에러가 나는데요. 다른 질문들을 찾아봐도 모르겠네요...SEVERE: 자식 컨테이너를 시작 중 실패했습니다.java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 구성요소 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/\]]을(를) 시작하지 못했습니다.사용환경 : 윈도우 / IntelliJ IDEA 2022.3.3 (Community Edition)
- 미해결스프링 부트 - 핵심 원리와 활용
Java 파일이 생성이 안됩니다..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]build.gradle 파일 오픈을 하면실행 로그 창에Unexpected lock protocol found in lock file. Expected 3, found 0.해당 오류문구가 뜨고이후, hello 패키지 밑에 hello.servlet 패키지 파일 안에 java 클래스 파일이 생성이 안되는데 어디서 잘못된 것인지 모르겠습니다..강의자료 소스파일을 다시 다운받아서 실행했는데도 오류는 계속 발생하는 상황입니다..추가로, 소스파일 내부에 강의 내용에서는 build 폴더가 따로 있는데, 제가 받은 강의자료 소스파일에는 build 파일이 없습니다.
- 미해결스프링 부트 - 핵심 원리와 활용
서블릿
@WebServlet가 잘 이해가 가지 않아서 질문드립니다. 1) @WebServlet 애노테이션은 web.xml과 연동? 된다고 생각하면 될까요? 2) @WebServlet을 사용한 클래스 내에 서블릿 초기화 처럼 디스패처 서블릿을 등록하여도 될까요? 3) @WebServlet은 web.xml 사용시 사용하는 애노테이션이고, 나머지 서블릿 초기화들은 web.xml 대신 사용하는 프로그래밍 초기화라고 생각하면 될까요?
- 미해결스프링 부트 - 핵심 원리와 활용
빈등록
@RestController 에노테이션 사용후 HelloConfig내 @ComponentScan을 사용하면 자동으로 빈이 등록되는걸로 알고있는데, 굳이 수동 빈 등록을 한 이유를 알 수 있을까요?명시적으로 보여주기 위함일까요?
- 해결됨스프링 부트 - 핵심 원리와 활용
test 실행시 DB 저장 에러
위에 SPRING 은 표기됐니다. 서버 실행에는 문제가 없는데 DB에 문제가 있네요 PreparedStatementCallback; SQL [insert into member(member_id, name) values(?,?)]; NULL not allowed for column "MEMBER_ID"; SQL statement: insert into member(member_id, name) values(?,?) [23502-214] org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [insert into member(member_id, name) values(?,?)]; NULL not allowed for column "MEMBER_ID"; SQL statement: insert into member(member_id, name) values(?,?) [23502-214] at app//org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:95) at app//org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70) at app//org.springframework.jdbc.core.JdbcTemplate.translateException(JdbcTemplate.java:1538) at app//org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:667) at app//org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:960) at app//org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1015) at app//org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1025) at app//hello.member.MemberRepository.save(MemberRepository.java:23) at java.base@17.0.7/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@17.0.7/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base@17.0.7/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base@17.0.7/java.lang.reflect.Method.invoke(Method.java:568) at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) at app//org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:752) at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:752) at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703) at app//hello.member.MemberRepository$$SpringCGLIB$$0.save(<generated>) at app//hello.member.MemberRepositoryTest.memberTest(MemberRepositoryTest.java:21) at java.base@17.0.7/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@17.0.7/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base@17.0.7/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base@17.0.7/java.lang.reflect.Method.invoke(Method.java:568) at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727) at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156) at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147) at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86) at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103) at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92) at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.base@17.0.7/java.util.ArrayList.forEach(ArrayList.java:1511) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.base@17.0.7/java.util.ArrayList.forEach(ArrayList.java:1511) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61) at java.base@17.0.7/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@17.0.7/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base@17.0.7/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base@17.0.7/java.lang.reflect.Method.invoke(Method.java:568) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) Caused by: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: NULL not allowed for column "MEMBER_ID"; SQL statement: insert into member(member_id, name) values(?,?) [23502-214] at app//org.h2.message.DbException.getJdbcSQLException(DbException.java:508) at app//org.h2.message.DbException.getJdbcSQLException(DbException.java:477) at app//org.h2.message.DbException.get(DbException.java:223) at app//org.h2.message.DbException.get(DbException.java:199) at app//org.h2.table.Column.validateConvertUpdateSequence(Column.java:365) at app//org.h2.table.Table.convertInsertRow(Table.java:926) at app//org.h2.command.dml.Insert.insertRows(Insert.java:167) at app//org.h2.command.dml.Insert.update(Insert.java:135) at app//org.h2.command.dml.DataChangeStatement.update(DataChangeStatement.java:74) at app//org.h2.command.CommandContainer.update(CommandContainer.java:169) at app//org.h2.command.Command.executeUpdate(Command.java:252) at app//org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:209) at app//org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:169) at app//com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61) at app//com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java) at app//org.springframework.jdbc.core.JdbcTemplate.lambda$update$2(JdbcTemplate.java:965) at app//org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651) ... 103 more MemberRepositoryTest > memberTest() FAILED org.springframework.dao.DataIntegrityViolationException at MemberRepositoryTest.java:21 Caused by: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException at MemberRepositoryTest.java:21 2023-07-21T02:27:25.304+09:00 INFO 12264 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2023-07-21T02:27:25.306+09:00 INFO 12264 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. 1 test completed, 1 failed > Task :test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///C:/Users/seongmun/spring/start/autoconfig/build/reports/tests/test/index.html * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 5s 4 actionable tasks: 2 executed, 2 up-to-date 테스트 코드입니다. 에러를 찾으려고아래부터 주석처리했는데, save에서 에러가 뜨더라구요! save도 영상처럼 그대로 작성했는데,어디서 에러가 뜬걸까요?
- 미해결스프링 부트 - 핵심 원리와 활용
라이브러리 만들 때 클래스를 감추는 방법 질문
라이브러리를 생성하는데 궁금한 점이 있습니다.라이브러리 안에는 A 클래스, B 클래스가 존재하고 여기서 외부로는 B 클래스만을 밖으로 내보내고 싶다고 할때는 어떤식으로 해야할까요?즉 A 클래스는 라이브러리 내부에서만 사용하도록 하고 B 클래스를 통해 외부에서 사용가능토록 하는 것입니다. default 접근 제어자를 생각해보았으나 라이브러리에 패키지가 여러 개일 경우 개발할 때 불편함이 있다고 생각되었습니다.항상 좋은 강의 감사드립니다 :)
- 해결됨스프링 부트 - 핵심 원리와 활용
내장 톰캣2-서블릿 (톰켓 실행 에러)
자료 코드 복붙해도 에러가 그대로네요... > Task :EmbedTomcatServletMain.main() FAILED EmbedTomcatServletMain.main 7�� 14, 2023 1:53:21 ���� org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-nio-8080"] 7�� 14, 2023 1:53:21 ���� org.apache.catalina.core.StandardService startInternal INFO: Starting service [Tomcat] 7�� 14, 2023 1:53:21 ���� org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet engine: [Apache Tomcat/10.1.5] 7�� 14, 2023 1:53:21 ���� org.apache.catalina.core.ContainerBase startInternal SEVERE: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@35cabb2a] 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:923) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:886) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1383) 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:916) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:252) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:430) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:926) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Tomcat.start(Tomcat.java:485) at hello.embed.EmbedTomcatServletMain.main(EmbedTomcatServletMain.java:21) Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@35cabb2a] 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.StandardContext.resourcesStart(StandardContext.java:4829) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4962) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1383) 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:916) ... 16 more Caused by: java.lang.IllegalArgumentException: The main resource set specified [C:\Users\�Ӹ�\OneDrive\���� ȭ��\Spring\start\embed\tomcat.8080\webapps\] is not valid at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:777) at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:734) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ... 25 more 7�� 14, 2023 1:53:21 ���� org.apache.catalina.core.ContainerBase startInternal SEVERE: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: A child container failed during start 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:923) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:252) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:430) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:926) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Tomcat.start(Tomcat.java:485) at hello.embed.EmbedTomcatServletMain.main(EmbedTomcatServletMain.java:21) Caused by: org.apache.catalina.LifecycleException: A child container failed during start at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:935) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:886) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1383) 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:916) ... 8 more Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@35cabb2a] 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:923) ... 16 more Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@35cabb2a] 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.StandardContext.resourcesStart(StandardContext.java:4829) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4962) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@35cabb2a] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1383) 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:916) ... 16 more Caused by: java.lang.IllegalArgumentException: The main resource set specified [C:\Users\�Ӹ�\OneDrive\���� ȭ��\Spring\start\embed\tomcat.8080\webapps\] is not valid at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:777) at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:734) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) Caused by: java.lang.IllegalArgumentException: The main resource set specified [C:\Users\�Ӹ�\OneDrive\���� ȭ��\Spring\start\embed\tomcat.8080\webapps\] is not valid ... 25 more Exception in thread "main" org.apache.catalina.LifecycleException: A child container failed during start at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:935) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:252) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:430) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:926) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Tomcat.start(Tomcat.java:485) at hello.embed.EmbedTomcatServletMain.main(EmbedTomcatServletMain.java:21) Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: A child container failed during start 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:923) ... 8 more Caused by: org.apache.catalina.LifecycleException: A child container failed during start at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:935) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:886) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1383) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) Caused by: org.apache.catalina.LifecycleException: A child container failed during start at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) ... 8 more Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@35cabb2a] at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@35cabb2a] at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923) ... 16 more Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@35cabb2a] Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@35cabb2a] 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.StandardContext.resourcesStart(StandardContext.java:4829) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4962) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1383) Caused by: java.lang.IllegalArgumentException: The main resource set specified [C:\Users\�Ӹ�\OneDrive\���� ȭ��\Spring\start\embed\tomcat.8080\webapps\] is not valid 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:916) ... 16 more Caused by: java.lang.IllegalArgumentException: The main resource set specified [C:\Users\�Ӹ�\OneDrive\���� ȭ��\Spring\start\embed\tomcat.8080\webapps\] is not valid at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:777) Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: A child container failed during start at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:734) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ... 25 more Caused by: org.apache.catalina.LifecycleException: A child container failed during start Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@35cabb2a] Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@35cabb2a] Caused by: java.lang.IllegalArgumentException: The main resource set specified [C:\Users\�Ӹ�\OneDrive\���� ȭ��\Spring\start\embed\tomcat.8080\webapps\] is not valid Execution failed for task ':EmbedTomcatServletMain.main()'. > Process 'command 'C:/Users/java/jdk-17.0.7/bin/java.exe'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. 사진은 복붙한 코드입니다.마지막 줄 tomcat.start()만 없으면, 에러는 안뜹니다.LifecycleException 에러로 보이는데,,https://www.inflearn.com/questions/5283/%EC%8B%AC%EA%B0%81-a-child-container-failed-during-start유사한 에러가 이거 같은데, 봐도 기존 코드가 달라 해결법을 모르겠네요..윈도우 11 // 인텔리제이 23.01 // 외장 라이브러리 : spring-core-6.0.4
- 미해결스프링 부트 - 핵심 원리와 활용
잘 이해가 안갑니다...
MyContainerInitV1 : ServletContainerInitializer을 implement한 클래스로서 서블릿 컨테이너 초기화를 위해 작성됐다.HelloServlet : HttpServlet을 상속받은 Servlet이다.AppInit : 애플리케이션 초기화를 위한 인터페이스이다.AppInitV1Servlet : AppInit를 implement한 애플리케이션 초기화 클래스 ? onStartup()을 통해 서블릿 컨테이너를 초기화하고 서블릿도 등록한다. MyContainerInitV2: ServletContainerInitializer을 implement한 클래스로서 @HandlesTypes(AppInit.class) 해줌으로써 해당 AppInit의 onStartup()을 통해 서블릿 컨테이너의 ctx를 파라미터로 보내서 AppInit 객체를 생성한다?================================제가 이해한 개념이 맞나요? 뭔가 용어들이 비슷해서 명확하게 이해가 안되는 것 같습니다. ㅠㅠ질문1) 컨테이너 초기화와 애플리케이션 초기화는 다른 건가요? 각각 뭐가 다르고 왜 해주는건지 잘 모르겠습니다. ㅠㅠ 질문2) AppInit과 ServletContainerInitializer은 둘다 onStartup()를 가지고 있던데.. 서로 다른 역할을 하는 각각의 인터페이스죠..? 질문3) AppInitV1Servlet 은 서블릿 컨테이너 초기화하고 서블릿도 등록하고, MyContainerInitV2도 서블릿 컨테이너 초기화와 서블릿 등록을 하게되는데 둘의 차이는 뭔가요?...너무 헷갈려요 ㅠㅠㅠㅠㅠ
- 미해결스프링 부트 - 핵심 원리와 활용
다음 강의 주제
안녕하세요 :)혹시 다음 강의를 준비중이시라면 다음 강의 주제를 알 수 있을까요?MSA 관련해서 강의 예정이 있으신지 궁금합니다!
- 미해결스프링 부트 - 핵심 원리와 활용
@Configuration 주석 이유
두가지 질문이 있는데요MySpringBootMain띄울때 HelloConfig 클래스에 @Configuration 이 있어도 잘 동작 하던데 주석 처리하는 이유가 뭔지 알 수 있을까요? 다른 질문인데요 @Configuration안에 @Component가 있어서 @Component 대신 @Configuration을 써도 되는것 같던데 빈여러개 등록할때 말고 하나의 클래스를 빈으로 등록할때 @Component 대신 @Configuration을 사용하지 않는 이유가 뭘까요...?찾아봐도 잘 안나와서 질문 드립니다.
- 해결됨스프링 부트 - 핵심 원리와 활용
4개의 서블릿 등록
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)아니오 [질문 내용]좋은 강의 감사드립니다! 동영상 5:35 초 쯤 3개의 서블릿이 등록되어있다고 말씀해주셨는데 정확히는 @WebServlet 애노테이션을 통한 TestServlet 등록이 있어서 4개의 서블릿이 등록되어있는 상태인 것 같습니다. ( 강의자료에도 TestServlet 이 포함되어 있는데 혹시 혼란이 생기시는 분들도 있을 수 있을 것 같아 질문으로 남기겠습니다!)
- 미해결스프링 부트 - 핵심 원리와 활용
윈도우 사용자분들 cmd에서 톰캣 오류 혹은 빌드 오류 날때..
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 아니오[질문 내용]질문은 아니고 혹시 저와 같은 상황이 있을 것 같은 분들을 위해 몇 글자 적어보자면윈도우 cmd에서 빌드할 때 gradlew build 나 톰캣 catalina run 이런 명령어가 Unrecognized option: ~~ 이런식으로 나온다면 그냥 윈도우 powershell을 사용하는 걸 추천드립니다..Unrecognized option: -djava.util.logging.config.fileorUnrecognized option: -xmx64m등등..이상하게 cmd에선 대문자 옵션이 소문자로 바뀌어서 인수로 인식을 못하더라구여ㅠ.. 결론 ! => powershell 쓰면 해결가능합니다!
- 미해결스프링 부트 - 핵심 원리와 활용
스프링부트 내장 tomcat 의 실체
안녕하세요? 김영한 강사님,강의를 본후, [설치형 tomcat 서버] 와 [스프링부트 내장 tomcat ] 의 차이점이 정리가 되지 않아 질문드립니다.질문 1.https://tomcat.apache.org/위의 톰캣 홈페이지에서 다운로드 받아서 설치하는 WAS 는 [ apache 웹서버 + 톰캣 ] 인 것으로 알고 있습니다. 용어가 apache tomcat 이라서 그렇게 알고 있습니다. 제가 잘못 알고 있는 것인가요? 다운로드 받아서 설치하는 방식도 apache 웹서버 없는 순수 tomcat 인가요? 질문 2.스프링부트에 내장된 tomcat 은 [ apache 웹서버 + tomcat] 인가요? 아니면, apache 웹서버가 제외된 순수 tomcat 만 내장되어 있는 것인가요? 질문 3.질문 2 에 대한 답이 순수 tomcat 이라면,실제 서비스 운용시, 스프링부트로 작업한 웹어플리케이션 앞단에 apache 또는 nginx 웹서버를 반드시 붙여서 하는 것이 일반적인지요?아니면, 스프링부트로 작업한 내장 tomcat 웹어플리케이션 만으로 서비스를 하는 것이 더 일반적인지요?
- 미해결스프링 부트 - 핵심 원리와 활용
server 프로젝트에대해 문의드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요. servlet에서 처음 프로젝트강의하는거보다가 궁금한게 있어서 질문드립니다.server프로젝트에 mybatis를 연계를 하고싶은데.방법이 있을까요?기존에 이클립스에서 스프링을하다보니..web.xml파일은 어디에 설정해줘야하는지 궁금합니다. 두서없는글이지만 읽어주셔서 감사합니다.
- 미해결스프링 부트 - 핵심 원리와 활용
AppInitV1Servlet 사용시 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 안녕하세요, AppInitV1Servlet 를 사용할때, 02 pdf. 21쪽 HandlesTypes 를 사용하지도 않았는데, 어떻게 AppInitV1Servlet이 등록 된 것인가요..? MyContainerInitV2에서는 서블릿컨테이너 초기화 시점에, @HandlesTypes(AppInit.class)를 통해 지정해 주어set<Class<?>> c.... 를 통해 넣는 것은 이해가 되는데,이 과정이 자동으로 일어난것인가요?자동으로 일어났다고 보기에, Appinit은 직접 만든 인터페이스여서 이해가 되지 않습니다... 설명 부탁드립니당
- 미해결스프링 부트 - 핵심 원리와 활용
Jar 파일로 서버 실행 시키키 VS IDE에서 서버 실행시키기
안녕하세요. 지금까지 영한님의 강의를 잘 들어온 수강생입니다. 지금까지 들었던 강의들을 기반으로 현재 프로젝트를 진행하고 있는데, 프로젝트를 진행하던 중 도저히 이유를 알수가 없는 문제가 생겨서 해당 질문이 강의의 내용과 무관함에도 불구하고, 질문을 올리게 되었습니다.문제 상황은 다음과 같습니다.프로젝트를 IntelliJ 상에서 실행하는 경우에 특정 HTTP 요청이 정상적으로 처리가 되는데, 동일한 소스코드를 기반으로 IntelliJ에 있는 Gradle의 bootJar로 Jar 파일을 생성한 뒤, 터미널에서 "java -jar 파일이름.jar" 커맨드를 통해 서버를 실행시키면 위에서 보낸 요청과 동일한 요청이 정상적으로 처리가 되지 않습니다.동일한 소스 코드에 단지 IDE 상에서 실행시키느냐, bootJar로 Jar 파일을 만들어 실행시키느냐 그 차이만 존재하는데, 한쪽은 제대로 동작하고, 다른 한쪽은 제대로 동작하지 않으니 도대체 무슨 이유로 동작하지 않는건지 모르겠습니다.혹시 의심해볼만한 부분이 있다면 알려주시면 감사하겠습니다.