안녕하세요 강사님. 시큐리티에 이어 OAuth 강의까지 잘 듣고 있습니다. PKCE 학습 중 Code Verifier에 관해 찾아보다 강의 내용과 조금 다른 부분이 있어 질문 드립니다. Code Verifier에서 48~128 글자수를 가진 무작위 문자열이라고 설명이 되어 있는데, RFC 문서를 보니까 43 ~128 글자수라고 설명이 되어 있습니다. https://www.rfc-editor.org/rfc/rfc7636 혹시 어떤 내용이 맞는건지 확인 부탁드리겠습니다
> Task :compileJava UP-TO-DATE > Task :processResources UP-TO-DATE > Task :classes UP-TO-DATE > Task :compileTestJava UP-TO-DATE > Task :processTestResources NO-SOURCE > Task :testClasses UP-TO-DATE > Task :test 22:55:06.512 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate] 22:55:06.529 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating BootstrapContext using constructor [public org.springframework.test.context.support.DefaultBootstrapContext(java.lang.Class,org.springframework.test.context.CacheAwareContextLoaderDelegate)] 22:55:06.572 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating TestContextBootstrapper for test class [hello.hellospring.service.MemberServiceIntegrationTest] from class [org.springframework.boot.test.context.SpringBootTestContextBootstrapper] 22:55:06.584 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [hello.hellospring.service.MemberServiceIntegrationTest], using SpringBootContextLoader 22:55:06.588 [Test worker] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [hello.hellospring.service.MemberServiceIntegrationTest]: class path resource [hello/hellospring/service/MemberServiceIntegrationTest-context.xml] does not exist 22:55:06.589 [Test worker] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [hello.hellospring.service.MemberServiceIntegrationTest]: class path resource [hello/hellospring/service/MemberServiceIntegrationTestContext.groovy] does not exist 22:55:06.589 [Test worker] INFO org.springframework.test.context.support.AbstractContextLoader - Could not detect default resource locations for test class [hello.hellospring.service.MemberServiceIntegrationTest]: no resource found for suffixes {-context.xml, Context.groovy}. 22:55:06.590 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [hello.hellospring.service.MemberServiceIntegrationTest]: MemberServiceIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. 22:55:06.632 [Test worker] DEBUG org.springframework.test.context.support.ActiveProfilesUtils - Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles] and class [hello.hellospring.service.MemberServiceIntegrationTest] 22:55:06.709 [Test worker] DEBUG org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider - Identified candidate component class: file [C:\Users\tkrhk\study\hello-spring\build\classes\java\main\hello\hellospring\HelloSpringApplication.class] 22:55:06.711 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration hello.hellospring.HelloSpringApplication for test class hello.hellospring.service.MemberServiceIntegrationTest 22:55:06.828 [Test worker] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - @TestExecutionListeners is not present for class [hello.hellospring.service.MemberServiceIntegrationTest]: using defaults. 22:55:06.828 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener] 22:55:06.849 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@172ca72b, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@5bda80bf, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@71e5f61d, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@2ce86164, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@5e8f9e2d, org.springframework.test.context.support.DirtiesContextTestExecutionListener@51df223b, org.springframework.test.context.transaction.TransactionalTestExecutionListener@fd46303, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@60d8c0dc, org.springframework.test.context.event.EventPublishingTestExecutionListener@4204541c, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@6a62689d, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@4602c2a9, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@60fa3495, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@3e2822, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@79e18e38, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@29a60c27] 22:55:06.854 [Test worker] DEBUG org.springframework.test.context.support.AbstractDirtiesContextTestExecutionListener - Before test class: context [DefaultTestContext@60b71e8f testClass = MemberServiceIntegrationTest, testInstance = [null], testMethod = [null], testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@1255b1d1 testClass = MemberServiceIntegrationTest, locations = '{}', classes = '{class hello.hellospring.HelloSpringApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@691939c9, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@22875539, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@43f82e78, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@517566b, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@12c7a01b, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@5d7148e2], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true]], class annotated with @DirtiesContext [false] with mode [null]. . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.11) 2023-05-31 22:55:07.186 INFO 33152 --- [ Test worker] h.h.s.MemberServiceIntegrationTest : Starting MemberServiceIntegrationTest using Java 17.0.7 on DESKTOP-K88V7L0 with PID 33152 (started by tkrhk in C:\Users\tkrhk\study\hello-spring) 2023-05-31 22:55:07.187 INFO 33152 --- [ Test worker] h.h.s.MemberServiceIntegrationTest : No active profile set, falling back to 1 default profile: "default" 2023-05-31 22:55:07.900 INFO 33152 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2023-05-31 22:55:07.974 INFO 33152 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 59 ms. Found 1 JPA repository interfaces. 2023-05-31 22:55:08.639 INFO 33152 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2023-05-31 22:55:08.708 INFO 33152 --- [ Test worker] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.6.15.Final 2023-05-31 22:55:08.891 INFO 33152 --- [ Test worker] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.2.Final} 2023-05-31 22:55:09.016 INFO 33152 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2023-05-31 22:55:09.110 INFO 33152 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2023-05-31 22:55:09.162 INFO 33152 --- [ Test worker] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect 2023-05-31 22:55:09.717 INFO 33152 --- [ Test worker] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] 2023-05-31 22:55:09.730 INFO 33152 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2023-05-31 22:55:09.748 WARN 33152 --- [ Test worker] o.s.w.c.s.GenericWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController' defined in file [C:\Users\tkrhk\study\hello-spring\build\classes\java\main\hello\hellospring\controller\MemberController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.hellospring.service.MemberService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} 2023-05-31 22:55:09.749 INFO 33152 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2023-05-31 22:55:09.752 INFO 33152 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2023-05-31 22:55:09.760 INFO 33152 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. 2023-05-31 22:55:09.770 INFO 33152 --- [ Test worker] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2023-05-31 22:55:09.801 ERROR 33152 --- [ Test worker] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Parameter 0 of constructor in hello.hellospring.controller.MemberController required a bean of type 'hello.hellospring.service.MemberService' that could not be found. Action: Consider defining a bean of type 'hello.hellospring.service.MemberService' in your configuration. 2023-05-31 22:55:09.812 ERROR 33152 --- [ Test worker] o.s.test.context.TestContextManager : Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener@172ca72b] to prepare test instance [hello.hellospring.service.MemberServiceIntegrationTest@26d7cb0d] java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:98) ~[spring-test-5.3.27.jar:5.3.27] at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) ~[spring-test-5.3.27.jar:5.3.27] at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) ~[spring-test-5.3.27.jar:5.3.27] at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) ~[spring-test-5.3.27.jar:5.3.27] at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) ~[spring-test-5.3.27.jar:5.3.27] at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) ~[spring-test-5.3.27.jar:5.3.27] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na] at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[na:na] at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na] at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) ~[na:na] at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) ~[na:na] at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) ~[na:na] at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[na:na] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at java.base/java.util.Optional.orElseGet(Optional.java:364) ~[na:na] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) ~[junit-platform-engine-1.8.2.jar:1.8.2] at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) ~[na:na] at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.8.2.jar:1.8.2] at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) ~[na:na] at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107) ~[na:na] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) ~[na:na] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) ~[na:na] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) ~[na:na] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) ~[na:na] at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) ~[na:na] at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) ~[na:na] at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) ~[na:na] at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53) ~[na:na] at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) ~[na:na] at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) ~[na:na] at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) ~[na:na] at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62) ~[na: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.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) ~[na:na] at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) ~[na:na] at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) ~[na:na] at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) ~[na:na] at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) ~[na:na] at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) ~[na:na] at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113) ~[na:na] at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65) ~[na:na] at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) ~[gradle-worker.jar:na] at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) ~[gradle-worker.jar:na] Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController' defined in file [C:\Users\tkrhk\study\hello-spring\build\classes\java\main\hello\hellospring\controller\MemberController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.hellospring.service.MemberService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:920) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) ~[spring-boot-2.7.11.jar:2.7.11] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.11.jar:2.7.11] at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) ~[spring-boot-2.7.11.jar:2.7.11] at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) ~[spring-boot-test-2.7.11.jar:2.7.11] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:141) ~[spring-test-5.3.27.jar:5.3.27] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:90) ~[spring-test-5.3.27.jar:5.3.27] ... 87 common frames omitted Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.hellospring.service.MemberService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1801) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1357) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-5.3.27.jar:5.3.27] ... 105 common frames omitted Failed to load ApplicationContext java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:98) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) at java.base/java.util.Optional.orElseGet(Optional.java:364) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at 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:62) 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.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:113) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65) at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController' defined in file [C:\Users\tkrhk\study\hello-spring\build\classes\java\main\hello\hellospring\controller\MemberController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.hellospring.service.MemberService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at app//org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) at app//org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at app//org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at app//org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at app//org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at app//org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) at app//org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:920) at app//org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) at app//org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) at app//org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) at app//org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at app//org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:141) at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:90) ... 87 more Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.hellospring.service.MemberService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1801) at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1357) at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) at app//org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) at app//org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ... 105 more . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.11) 2023-05-31 22:55:09.881 INFO 33152 --- [ Test worker] h.h.s.MemberServiceIntegrationTest : Starting MemberServiceIntegrationTest using Java 17.0.7 on DESKTOP-K88V7L0 with PID 33152 (started by tkrhk in C:\Users\tkrhk\study\hello-spring) 2023-05-31 22:55:09.881 INFO 33152 --- [ Test worker] h.h.s.MemberServiceIntegrationTest : No active profile set, falling back to 1 default profile: "default" 2023-05-31 22:55:10.114 INFO 33152 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2023-05-31 22:55:10.131 INFO 33152 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 15 ms. Found 1 JPA repository interfaces. 2023-05-31 22:55:10.299 INFO 33152 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2023-05-31 22:55:10.312 INFO 33152 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Starting... 2023-05-31 22:55:10.319 INFO 33152 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Start completed. 2023-05-31 22:55:10.319 INFO 33152 --- [ Test worker] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect 2023-05-31 22:55:10.353 INFO 33152 --- [ Test worker] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] 2023-05-31 22:55:10.353 INFO 33152 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2023-05-31 22:55:10.366 WARN 33152 --- [ Test worker] o.s.w.c.s.GenericWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController' defined in file [C:\Users\tkrhk\study\hello-spring\build\classes\java\main\hello\hellospring\controller\MemberController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.hellospring.service.MemberService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} 2023-05-31 22:55:10.366 INFO 33152 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2023-05-31 22:55:10.366 INFO 33152 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Shutdown initiated... 2023-05-31 22:55:10.368 INFO 33152 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Shutdown completed. 2023-05-31 22:55:10.372 INFO 33152 --- [ Test worker] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2023-05-31 22:55:10.376 ERROR 33152 --- [ Test worker] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Parameter 0 of constructor in hello.hellospring.controller.MemberController required a bean of type 'hello.hellospring.service.MemberService' that could not be found. Action: Consider defining a bean of type 'hello.hellospring.service.MemberService' in your configuration. 2023-05-31 22:55:10.388 ERROR 33152 --- [ Test worker] o.s.test.context.TestContextManager : Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener@172ca72b] to prepare test instance [hello.hellospring.service.MemberServiceIntegrationTest@23d978b] java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:98) ~[spring-test-5.3.27.jar:5.3.27] at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) ~[spring-test-5.3.27.jar:5.3.27] at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) ~[spring-test-5.3.27.jar:5.3.27] at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) ~[spring-test-5.3.27.jar:5.3.27] at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) ~[spring-test-5.3.27.jar:5.3.27] at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) ~[spring-test-5.3.27.jar:5.3.27] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) ~[na:na] at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[na:na] at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[na:na] at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na] at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na] at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) ~[na:na] at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) ~[na:na] at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) ~[na:na] at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[na:na] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at java.base/java.util.Optional.orElseGet(Optional.java:364) ~[na:na] at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) ~[junit-platform-engine-1.8.2.jar:1.8.2] at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) ~[na:na] at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.8.2.jar:1.8.2] at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) ~[na:na] at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107) ~[na:na] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) ~[na:na] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) ~[na:na] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) ~[na:na] at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) ~[na:na] at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) ~[na:na] at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) ~[na:na] at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) ~[na:na] at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53) ~[na:na] at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) ~[na:na] at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) ~[na:na] at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) ~[na:na] at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62) ~[na: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.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) ~[na:na] at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) ~[na:na] at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) ~[na:na] at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) ~[na:na] at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) ~[na:na] at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) ~[na:na] at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) ~[na:na] at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113) ~[na:na] at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65) ~[na:na] at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) ~[gradle-worker.jar:na] at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) ~[gradle-worker.jar:na] Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController' defined in file [C:\Users\tkrhk\study\hello-spring\build\classes\java\main\hello\hellospring\controller\MemberController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.hellospring.service.MemberService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:920) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.27.jar:5.3.27] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) ~[spring-boot-2.7.11.jar:2.7.11] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.11.jar:2.7.11] at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) ~[spring-boot-2.7.11.jar:2.7.11] at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) ~[spring-boot-test-2.7.11.jar:2.7.11] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:141) ~[spring-test-5.3.27.jar:5.3.27] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:90) ~[spring-test-5.3.27.jar:5.3.27] ... 87 common frames omitted Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.hellospring.service.MemberService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1801) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1357) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) ~[spring-beans-5.3.27.jar:5.3.27] at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-5.3.27.jar:5.3.27] ... 105 common frames omitted Failed to load ApplicationContext java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:98) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272) at java.base/java.util.Optional.orElseGet(Optional.java:364) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271) at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at 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:62) 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.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:113) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65) at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController' defined in file [C:\Users\tkrhk\study\hello-spring\build\classes\java\main\hello\hellospring\controller\MemberController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.hellospring.service.MemberService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at app//org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) at app//org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) at app//org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at app//org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at app//org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at app//org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) at app//org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:920) at app//org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) at app//org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) at app//org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) at app//org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at app//org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136) at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:141) at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:90) ... 87 more Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.hellospring.service.MemberService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1801) at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1357) at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) at app//org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) at app//org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ... 105 more MemberServiceIntegrationTest > 중복_회원_예외() FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:98 Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:800 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException at DefaultListableBeanFactory.java:1801 MemberServiceIntegrationTest > 회원가입() FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:98 Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:800 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException at DefaultListableBeanFactory.java:1801 2 tests completed, 2 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/tkrhk/study/hello-spring/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 6s 4 actionable tasks: 1 executed, 3 up-to-date Jdbc Template까지 잘 실행이 되었는데, JPA 부분을 따라하니 오류가 생깁니다... 테스트 시 다음과 같은 오류가 발생했고, 혹시 디렉토리 경로 설정의 오류일까 싶어 사진 첨부합니다. spring.datasource.username=sa 도 잘 추가되어 있는데 왜 오류가 발생하는지 모르겠습니다... h2 콘솔은 정상 실행중입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 몰라요 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] 여기에 질문 내용을 남겨주세요. 처음하는 초심자 입장에서 너무 어렵습니다 일단 설치부터 jdk까지는 꾸역꾸역 구글링해서 깔고했는데 인텔리제이를 설치하고 설치하는 과정에서 어떤 체크사항을 체크해야하고 어디에 저장하고 하는지 하나도 모르고 그냥 "인텔리제이 설치하시오", "자바 jdk 설치하시오" 미리 준비물로 딸랑 해놓고 지금 혼자 깔고 인텔리제이 실행해서 강사님이랑 똑같이 하려는데 처음 run하는것부터 run이 보이지도 않고 막히네요 무료강의도 아니고 돈내고 듣는데 너무 짜증나고 답답합니다 이 질문도 한참있다가 질문답변이 달릴테고... 극초심자를위한 설치부터 하나하나 같이 알려주고 하는방법좀 설명해주셨으면 좋겠습니다 시간아깝고 짜증납니다 정말
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 오랜만에 들어갔더니 db연결이안돼요 ㅠ 이거때문에 application 실행도 안 되네요.ㅠㅠ 원래 잘만 되다가 오늘 어노테이션이랑 다 막혀있길래 gradle 을 refresh 했는데 그 이후 다른 빨간줄은 해결됐는데 db연결이 안됩니다
제가 따로 구현하지 않고 Spring Data JPA JpaRepository 에서 상속받은 deleteById 를 사용하면 먼저 select query 가 1번 나간 다음에 찾아온 Entity로 delete 메서드를 호출하는 것 같더라구요 그래서 총 select, delete 쿼리가 각각 1번 총 2번 나가는 것 같은데 PK로 delete 를 하고 싶을 때, @Query로 작성하여 delete 문을 1번 나가게 하는 것과, 위의 방법대로 select, delete 각각 1번 나가는 방법 중에 어떤 방법을 사용하는 것이 좋은가요 ?
Starting Gradle Daemon... Gradle Daemon started in 6 s 240 ms FAILURE: Build failed with an exception. * What went wrong: Gradle could not start your build. > Cannot create service of type DependencyLockingHandler using method DefaultDependencyManagementServices$DependencyResolutionScopeServices.createDependencyLockingHandler() as there is a problem with parameter #2 of type ConfigurationContainerInternal. > Cannot create service of type ConfigurationContainerInternal using method DefaultDependencyManagementServices$DependencyResolutionScopeServices.createConfigurationContainer() as there is a problem with parameter #13 of type DefaultConfigurationFactory. > Cannot create service of type DefaultConfigurationFactory using DefaultConfigurationFactory constructor as there is a problem with parameter #2 of type ConfigurationResolver. > Cannot create service of type ConfigurationResolver using method DefaultDependencyManagementServices$DependencyResolutionScopeServices.createDependencyResolver() as there is a problem with parameter #1 of type ArtifactDependencyResolver. > Cannot create service of type ArtifactDependencyResolver using method DependencyManagementBuildScopeServices.createArtifactDependencyResolver() as there is a problem with parameter #4 of type List<ResolverProviderFactory>. > Could not create service of type VersionControlRepositoryConnectionFactory using VersionControlBuildSessionServices.createVersionControlSystemFactory(). > Failed to create parent directory 'D:\Study\hello-spring\.gradle' when creating directory 'D:\Study\hello-spring\.gradle\vcs-1' * Try: > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Exception is: org.gradle.initialization.exception.InitializationException: Gradle could not start your build. at org.gradle.initialization.exception.DefaultExceptionAnalyser.collectFailures( DefaultExceptionAnalyser.java:65 ) at org.gradle.initialization.exception.MultipleBuildFailuresExceptionAnalyser.transform( MultipleBuildFailuresExceptionAnalyser.java:55 ) at org.gradle.initialization.exception.StackTraceSanitizingExceptionAnalyser.transform( StackTraceSanitizingExceptionAnalyser.java:39 ) at org.gradle.internal.buildtree.DefaultBuildTreeFinishExecutor.finishBuildTree( DefaultBuildTreeFinishExecutor.java:54 ) at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$runBuild$5( DefaultBuildTreeLifecycleController.java:118 ) at org.gradle.internal.model.StateTransitionController.lambda$transition$5( StateTransitionController.java:166 ) at org.gradle.internal.model.StateTransitionController.doTransition( StateTransitionController.java:247 ) at org.gradle.internal.model.StateTransitionController.lambda$transition$6( StateTransitionController.java:166 ) at org.gradle.internal.work .DefaultSynchronizer.withLock( DefaultSynchronizer.java:44 ) at org.gradle.internal.model.StateTransitionController.transition( StateTransitionController.java:166 ) at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.runBuild( DefaultBuildTreeLifecycleController.java:110 ) at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.fromBuildModel( DefaultBuildTreeLifecycleController.java:81 ) at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner.runClientAction( AbstractClientProvidedBuildActionRunner.java:43 ) at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner.run ( ClientProvidedPhasedActionRunner.java:53 ) at org.gradle.launcher.exec.ChainingBuildActionRunner.run ( ChainingBuildActionRunner.java:35 ) at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.run ( ProblemReportingBuildActionRunner.java:49 ) at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run ( BuildOutcomeReportingBuildActionRunner.java:65 ) at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run ( FileSystemWatchingBuildActionRunner.java:136 ) at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run ( BuildCompletionNotifyingBuildActionRunner.java:41 ) at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.lambda$execute$0( RootBuildLifecycleBuildActionExecutor.java:40 ) at org.gradle.composite.internal.DefaultRootBuildState.run ( DefaultRootBuildState.java:122 ) at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute( RootBuildLifecycleBuildActionExecutor.java:40 ) at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute( DefaultBuildTreeContext.java:40 ) at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.lambda$execute$0( BuildTreeLifecycleBuildActionExecutor.java:65 ) at org.gradle.internal.buildtree.BuildTreeState.run ( BuildTreeState.java:53 ) at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute( BuildTreeLifecycleBuildActionExecutor.java:65 ) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call( RunAsBuildOperationBuildActionExecutor.java:61 ) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call( RunAsBuildOperationBuildActionExecutor.java:57 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute( DefaultBuildOperationRunner.java:204 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute( DefaultBuildOperationRunner.java:199 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute( DefaultBuildOperationRunner.java:66 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute( DefaultBuildOperationRunner.java:59 ) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute( DefaultBuildOperationRunner.java:157 ) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute( DefaultBuildOperationRunner.java:59 ) at org.gradle.internal.operations.DefaultBuildOperationRunner.call ( DefaultBuildOperationRunner.java:53 ) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call ( DefaultBuildOperationExecutor.java:73 ) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute( RunAsBuildOperationBuildActionExecutor.java:57 ) at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.lambda$execute$0( RunAsWorkerThreadBuildActionExecutor.java:36 ) at org.gradle.internal.work .DefaultWorkerLeaseService.withLocks( DefaultWorkerLeaseService.java:249 ) at org.gradle.internal.work .DefaultWorkerLeaseService.runAsWorkerThread( DefaultWorkerLeaseService.java:109 ) at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute( RunAsWorkerThreadBuildActionExecutor.java:36 ) at org.gradle.tooling.internal.provider.continuous.ContinuousBuildActionExecutor.execute( ContinuousBuildActionExecutor.java:110 ) at org.gradle.tooling.internal.provider.SubscribableBuildActionExecutor.execute( SubscribableBuildActionExecutor.java:64 ) at org.gradle.internal.session.DefaultBuildSessionContext.execute( DefaultBuildSessionContext.java:46 ) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply( BuildSessionLifecycleBuildActionExecuter.java:100 ) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply( BuildSessionLifecycleBuildActionExecuter.java:88 ) at org.gradle.internal.session.BuildSessionState.run ( BuildSessionState.java:69 ) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute( BuildSessionLifecycleBuildActionExecuter.java:62 ) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute( BuildSessionLifecycleBuildActionExecuter.java:41 ) at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute( StartParamsValidatingActionExecuter.java:63 ) at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute( StartParamsValidatingActionExecuter.java:31 ) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute( SessionFailureReportingActionExecuter.java:52 ) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute( SessionFailureReportingActionExecuter.java:40 ) at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute( SetupLoggingActionExecuter.java:47 ) at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute( SetupLoggingActionExecuter.java:31 ) at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild( ExecuteBuild.java:65 ) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute( BuildCommandOnly.java:37 ) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed( DaemonCommandExecution.java:104 ) at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute( WatchForDisconnection.java:39 ) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed( DaemonCommandExecution.java:104 ) at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute( ResetDeprecationLogger.java:29 ) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed( DaemonCommandExecution.java:104 ) at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute( RequestStopIfSingleUsedDaemon.java:35 ) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed( DaemonCommandExecution.java:104 ) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create( ForwardClientInput.java:78 ) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create( ForwardClientInput.java:75 ) at org.gradle.util.internal.Swapper.swap( Swapper.java:38 ) at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute( ForwardClientInput.java:75 ) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed( DaemonCommandExecution.java:104 ) at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute( LogAndCheckHealth.java:55 ) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed( DaemonCommandExecution.java:104 ) at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild( LogToClient.java:63 ) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute( BuildCommandOnly.java:37 ) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed( DaemonCommandExecution.java:104 ) at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild( EstablishBuildEnvironment.java:84 ) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute( BuildCommandOnly.java:37 ) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed( DaemonCommandExecution.java:104 ) at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run( StartBuildOrRespondWithBusy.java:52 ) at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run( DaemonStateCoordinator.java:297 ) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute( ExecutorPolicy.java:64 ) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run( ManagedExecutorImpl.java:49 ) Caused by: org.gradle.internal.service.ServiceCreationException: Cannot create service of type DependencyLockingHandler using method DefaultDependencyManagementServices$DependencyResolutionScopeServices.createDependencyLockingHandler() as there is a problem with parameter #2 of type ConfigurationContainerInternal. at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.bind( DefaultServiceRegistry.java:803 ) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.prepare( DefaultServiceRegistry.java:688 ) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.getService( DefaultServiceRegistry.java:711 ) at org.gradle.internal.service.DefaultServiceRegistry$OwnServices.getService( DefaultServiceRegistry.java:444 ) at org.gradle.internal.service.DefaultServiceRegistry$CompositeServiceProvider.getService( DefaultServiceRegistry.java:996 ) at org.gradle.internal.service.DefaultServiceRegistry.find( DefaultServiceRegistry.java:1082 ) at org.gradle.internal.service.DefaultServiceRegistry.getService( DefaultServiceRegistry.java:323 ) at org.gradle.internal.service.DefaultServiceRegistry.find( DefaultServiceRegistry.java:317 ) at org.gradle.internal.service.DefaultServiceRegistry.get( DefaultServiceRegistry.java:302 ) at org.gradle.internal.service.DefaultServiceRegistry.get( DefaultServiceRegistry.java:297 ) at org.gradle.api.internal.artifacts.DefaultDependencyManagementServices$DefaultDependencyResolutionServices.getDependencyLockingHandler( DefaultDependencyManagementServices.java:611 ) at org.gradle.api.internal.initialization.DefaultScriptHandler.<init>( DefaultScriptHandler.java:83 ) at org.gradle.api.internal.initialization.DefaultScriptHandlerFactory.create( DefaultScriptHandlerFactory.java:61 ) at org.gradle.api.internal.initialization.DefaultScriptHandlerFactory.create( DefaultScriptHandlerFactory.java:55 ) at org.gradle.configuration.DefaultInitScriptProcessor.process( DefaultInitScriptProcessor.java:48 ) at org.gradle.initialization.InitScriptHandler$1.run( InitScriptHandler.java:56 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute( DefaultBuildOperationRunner.java:29 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute( DefaultBuildOperationRunner.java:26 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute( DefaultBuildOperationRunner.java:66 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute( DefaultBuildOperationRunner.java:59 ) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute( DefaultBuildOperationRunner.java:157 ) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute( DefaultBuildOperationRunner.java:59 ) at org.gradle.internal.operations.DefaultBuildOperationRunner.run ( DefaultBuildOperationRunner.java:47 ) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run ( DefaultBuildOperationExecutor.java:68 ) at org.gradle.initialization.InitScriptHandler.executeScripts( InitScriptHandler.java:51 ) at org.gradle.initialization.InitScriptHandlingSettingsLoader.findAndLoadSettings( InitScriptHandlingSettingsLoader.java:33 ) at org.gradle.initialization.GradlePropertiesHandlingSettingsLoader.findAndLoadSettings( GradlePropertiesHandlingSettingsLoader.java:39 ) at org.gradle.initialization.DefaultSettingsPreparer.prepareSettings( DefaultSettingsPreparer.java:31 ) at org.gradle.initialization.BuildOperationFiringSettingsPreparer$LoadBuild.doLoadBuild( BuildOperationFiringSettingsPreparer.java:62 ) at org.gradle.initialization.BuildOperationFiringSettingsPreparer$LoadBuild.run( BuildOperationFiringSettingsPreparer.java:57 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute( DefaultBuildOperationRunner.java:29 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute( DefaultBuildOperationRunner.java:26 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute( DefaultBuildOperationRunner.java:66 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute( DefaultBuildOperationRunner.java:59 ) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute( DefaultBuildOperationRunner.java:157 ) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute( DefaultBuildOperationRunner.java:59 ) at org.gradle.internal.operations.DefaultBuildOperationRunner.run ( DefaultBuildOperationRunner.java:47 ) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run ( DefaultBuildOperationExecutor.java:68 ) at org.gradle.initialization.BuildOperationFiringSettingsPreparer.prepareSettings( BuildOperationFiringSettingsPreparer.java:45 ) at org.gradle.initialization.VintageBuildModelController.lambda$prepareSettings$1( VintageBuildModelController.java:80 ) at org.gradle.internal.model.StateTransitionController.lambda$doTransition$12( StateTransitionController.java:236 ) at org.gradle.internal.model.StateTransitionController.doTransition( StateTransitionController.java:247 ) at org.gradle.internal.model.StateTransitionController.doTransition( StateTransitionController.java:235 ) at org.gradle.internal.model.StateTransitionController.lambda$transitionIfNotPreviously$10( StateTransitionController.java:210 ) at org.gradle.internal.work .DefaultSynchronizer.withLock( DefaultSynchronizer.java:34 ) at org.gradle.internal.model.StateTransitionController.transitionIfNotPreviously( StateTransitionController.java:206 ) at org.gradle.initialization.VintageBuildModelController.prepareSettings( VintageBuildModelController.java:80 ) at org.gradle.initialization.VintageBuildModelController.getLoadedSettings( VintageBuildModelController.java:57 ) at org.gradle.internal.model.StateTransitionController.lambda$notInState$3( StateTransitionController.java:143 ) at org.gradle.internal.work .DefaultSynchronizer.withLock( DefaultSynchronizer.java:44 ) at org.gradle.internal.model.StateTransitionController.notInState( StateTransitionController.java:139 ) at org.gradle.internal.build .DefaultBuildLifecycleController.loadSettings( DefaultBuildLifecycleController.java:101 ) at org.gradle.internal.build .AbstractBuildState.ensureProjectsLoaded( AbstractBuildState.java:98 ) at org.gradle.plugins.ide.internal.tooling.GradleBuildBuilder.create( GradleBuildBuilder.java:58 ) at org.gradle.plugins.ide.internal.tooling.GradleBuildBuilder.create( GradleBuildBuilder.java:38 ) at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuildScopedBuilder.build( DefaultToolingModelBuilderRegistry.java:206 ) at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuildOperationWrappingBuilder$1.call( DefaultToolingModelBuilderRegistry.java:337 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute( DefaultBuildOperationRunner.java:204 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute( DefaultBuildOperationRunner.java:199 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute( DefaultBuildOperationRunner.java:66 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute( DefaultBuildOperationRunner.java:59 ) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute( DefaultBuildOperationRunner.java:157 ) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute( DefaultBuildOperationRunner.java:59 ) at org.gradle.internal.operations.DefaultBuildOperationRunner.call ( DefaultBuildOperationRunner.java:53 ) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call ( DefaultBuildOperationExecutor.java:73 ) at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuildOperationWrappingBuilder.build( DefaultToolingModelBuilderRegistry.java:334 ) at org.gradle.internal.build .DefaultBuildToolingModelController$AbstractToolingScope.getModel( DefaultBuildToolingModelController.java:82 ) at org.gradle.tooling.internal.provider.runner.DefaultBuildController.getModel( DefaultBuildController.java:106 ) at org.gradle.tooling.internal.consumer.connection.ParameterAwareBuildControllerAdapter.getModel( ParameterAwareBuildControllerAdapter.java:39 ) at org.gradle.tooling.internal.consumer.connection.UnparameterizedBuildController.getModel( UnparameterizedBuildController.java:113 ) at org.gradle.tooling.internal.consumer.connection.NestedActionAwareBuildControllerAdapter.getModel( NestedActionAwareBuildControllerAdapter.java:31 ) at org.gradle.tooling.internal.consumer.connection.UnparameterizedBuildController.getModel( UnparameterizedBuildController.java:76 ) at org.gradle.tooling.internal.consumer.connection.NestedActionAwareBuildControllerAdapter.getModel( NestedActionAwareBuildControllerAdapter.java:31 ) at org.gradle.tooling.internal.consumer.connection.UnparameterizedBuildController.getBuildModel( UnparameterizedBuildController.java:71 ) at org.gradle.tooling.internal.consumer.connection.NestedActionAwareBuildControllerAdapter.getBuildModel( NestedActionAwareBuildControllerAdapter.java:31 ) at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute( ProjectImportAction.java:121 ) at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute( ProjectImportAction.java:43 ) at org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter.execute( InternalBuildActionAdapter.java:64 ) at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionAdapter.runAction( AbstractClientProvidedBuildActionRunner.java:131 ) at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner$ActionAdapter.beforeTasks( AbstractClientProvidedBuildActionRunner.java:99 ) at org.gradle.internal.buildtree.DefaultBuildTreeModelCreator.beforeTasks( DefaultBuildTreeModelCreator.java:52 ) at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$fromBuildModel$2( DefaultBuildTreeLifecycleController.java:82 ) at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$runBuild$5( DefaultBuildTreeLifecycleController.java:113 ) ... 76 more Caused by: org.gradle.internal.service.ServiceCreationException: Cannot create service of type ConfigurationContainerInternal using method DefaultDependencyManagementServices$DependencyResolutionScopeServices.createConfigurationContainer() as there is a problem with parameter #13 of type DefaultConfigurationFactory. at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.bind( DefaultServiceRegistry.java:803 ) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.prepare( DefaultServiceRegistry.java:688 ) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.getService( DefaultServiceRegistry.java:711 ) at org.gradle.internal.service.DefaultServiceRegistry$OwnServices.getService( DefaultServiceRegistry.java:444 ) at org.gradle.internal.service.DefaultServiceRegistry$CompositeServiceProvider.getService( DefaultServiceRegistry.java:996 ) at org.gradle.internal.service.DefaultServiceRegistry.find( DefaultServiceRegistry.java:1082 ) at org.gradle.internal.service.DefaultServiceRegistry.access$1600( DefaultServiceRegistry.java:77 ) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.bind( DefaultServiceRegistry.java:801 ) ... 158 more Caused by: org.gradle.internal.service.ServiceCreationException: Cannot create service of type DefaultConfigurationFactory using DefaultConfigurationFactory constructor as there is a problem with parameter #2 of type ConfigurationResolver. at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.bind( DefaultServiceRegistry.java:803 ) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.prepare( DefaultServiceRegistry.java:688 ) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.getService( DefaultServiceRegistry.java:711 ) at org.gradle.internal.service.DefaultServiceRegistry$OwnServices.getService( DefaultServiceRegistry.java:444 ) at org.gradle.internal.service.DefaultServiceRegistry$CompositeServiceProvider.getService( DefaultServiceRegistry.java:996 ) at org.gradle.internal.service.DefaultServiceRegistry.find( DefaultServiceRegistry.java:1082 ) at org.gradle.internal.service.DefaultServiceRegistry.access$1600( DefaultServiceRegistry.java:77 ) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.bind( DefaultServiceRegistry.java:801 ) ... 165 more Caused by: org.gradle.internal.service.ServiceCreationException: Cannot create service of type ConfigurationResolver using method DefaultDependencyManagementServices$DependencyResolutionScopeServices.createDependencyResolver() as there is a problem with parameter #1 of type ArtifactDependencyResolver. at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.bind( DefaultServiceRegistry.java:803 ) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.prepare( DefaultServiceRegistry.java:688 ) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.getService( DefaultServiceRegistry.java:711 ) at org.gradle.internal.service.DefaultServiceRegistry$OwnServices.getService( DefaultServiceRegistry.java:444 ) at org.gradle.internal.service.DefaultServiceRegistry$CompositeServiceProvider.getService( DefaultServiceRegistry.java:996 ) at org.gradle.internal.service.DefaultServiceRegistry.find( DefaultServiceRegistry.java:1082 ) at org.gradle.internal.service.DefaultServiceRegistry.access$1600( DefaultServiceRegistry.java:77 ) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.bind( DefaultServiceRegistry.java:801 ) ... 172 more Caused by: org.gradle.internal.service.ServiceCreationException: Cannot create service of type ArtifactDependencyResolver using method DependencyManagementBuildScopeServices.createArtifactDependencyResolver() as there is a problem with parameter #4 of type List<ResolverProviderFactory>. at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.bind( DefaultServiceRegistry.java:803 ) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.prepare( DefaultServiceRegistry.java:688 ) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.getService( DefaultServiceRegistry.java:711 ) at org.gradle.internal.service.DefaultServiceRegistry$OwnServices.getService( DefaultServiceRegistry.java:444 ) at org.gradle.internal.service.DefaultServiceRegistry$CompositeServiceProvider.getService( DefaultServiceRegistry.java:996 ) at org.gradle.internal.service.DefaultServiceRegistry$ParentServices.getService( DefaultServiceRegistry.java:1050 ) at org.gradle.internal.service.DefaultServiceRegistry$CompositeServiceProvider.getService( DefaultServiceRegistry.java:996 ) at org.gradle.internal.service.DefaultServiceRegistry.find( DefaultServiceRegistry.java:1082 ) at org.gradle.internal.service.DefaultServiceRegistry.access$1600( DefaultServiceRegistry.java:77 ) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.bind( DefaultServiceRegistry.java:801 ) ... 179 more Caused by: org.gradle.internal.service.ServiceCreationException: Could not create service of type VersionControlRepositoryConnectionFactory using VersionControlBuildSessionServices.createVersionControlSystemFactory(). at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod( DefaultServiceRegistry.java:901 ) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.createServiceInstance( DefaultServiceRegistry.java:826 ) at org.gradle.internal.service.DefaultServiceRegistry$ManagedObjectServiceProvider.getInstance( DefaultServiceRegistry.java:611 ) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.get( DefaultServiceRegistry.java:674 ) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.assembleParameters( DefaultServiceRegistry.java:839 ) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.createServiceInstance( DefaultServiceRegistry.java:825 ) at org.gradle.internal.service.DefaultServiceRegistry$ManagedObjectServiceProvider.getInstance( DefaultServiceRegistry.java:611 ) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.get( DefaultServiceRegistry.java:674 ) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.assembleParameters( DefaultServiceRegistry.java:839 ) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.createServiceInstance( DefaultServiceRegistry.java:825 ) at org.gradle.internal.service.DefaultServiceRegistry$ManagedObjectServiceProvider.getInstance( DefaultServiceRegistry.java:611 ) at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.get( DefaultServiceRegistry.java:674 ) at org.gradle.internal.service.DefaultServiceRegistry.getCollectionService( DefaultServiceRegistry.java:1129 ) at org.gradle.internal.service.DefaultServiceRegistry.getCollectionService( DefaultServiceRegistry.java:1111 ) at org.gradle.internal.service.DefaultServiceRegistry.find( DefaultServiceRegistry.java:1074 ) at org.gradle.internal.service.DefaultServiceRegistry.access$1600( DefaultServiceRegistry.java:77 ) at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.bind( DefaultServiceRegistry.java:801 ) ... 188 more Caused by: org.gradle.api.UncheckedIOException: Failed to create parent directory 'D:\Study\hello-spring\.gradle' when creating directory 'D:\Study\hello-spring\.gradle\vcs-1' at org.gradle.util.internal.GFileUtils.mkdirs( GFileUtils.java:317 ) at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open ( DefaultPersistentDirectoryStore.java:86 ) at org.gradle.cache.internal.DefaultPersistentDirectoryStore.open ( DefaultPersistentDirectoryStore.java:43 ) at org.gradle.cache.internal.DefaultCacheFactory.doOpen( DefaultCacheFactory.java:103 ) at org.gradle.cache.internal.DefaultCacheFactory.open ( DefaultCacheFactory.java:68 ) at org.gradle.cache.internal.DefaultCacheRepository$PersistentCacheBuilder.open( DefaultCacheRepository.java:117 ) at org.gradle.vcs.internal.services .DefaultVersionControlRepositoryFactory.<init>( DefaultVersionControlRepositoryFactory.java:55 ) at org.gradle.vcs.internal.services .VersionControlServices$VersionControlBuildSessionServices.createVersionControlSystemFactory( VersionControlServices.java:116 ) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) at org.gradle.internal.reflect.JavaMethod.invoke( JavaMethod.java:125 ) at org.gradle.internal.service.ReflectionBasedServiceMethod.invoke( ReflectionBasedServiceMethod.java:34 ) at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod( DefaultServiceRegistry.java:899 ) ... 204 more * Get more help at https://help.gradle.org CONFIGURE FAILED in 7s FAILURE: Build failed with an exception. * What went wrong: Could not update D:\Study\hello-spring\.gradle\7.6.1\fileChanges\last-build.bin > D:\Study\hello-spring\.gradle\7.6.1\fileChanges\last-build.bin (??d?? �Ʃ�����? ?; ��?) * Try: > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Exception is: org.gradle.api.UncheckedIOException: Could not update D:\Study\hello-spring\.gradle\7.6.1\fileChanges\last-build.bin at org.gradle.api.internal.changedetection.state.FileTimeStampInspector.updateOnFinishBuild( FileTimeStampInspector.java:74 ) at org.gradle.api.internal.changedetection.state.BuildSessionScopeFileTimeStampInspector.beforeComplete( BuildSessionScopeFileTimeStampInspector.java:48 ) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:36 ) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:24 ) at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch( DefaultListenerManager.java:462 ) at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch( DefaultListenerManager.java:444 ) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch( AbstractBroadcastDispatch.java:83 ) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch( AbstractBroadcastDispatch.java:69 ) at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch( DefaultListenerManager.java:433 ) at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch( DefaultListenerManager.java:421 ) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch( AbstractBroadcastDispatch.java:43 ) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch( AbstractBroadcastDispatch.java:66 ) at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch( DefaultListenerManager.java:433 ) at org.gradle.internal.event.DefaultListenerManager$EventBroadcast.dispatch( DefaultListenerManager.java:221 ) at org.gradle.internal.event.DefaultListenerManager$EventBroadcast.dispatch( DefaultListenerManager.java:192 ) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke( ProxyDispatchAdapter.java:94 ) at com.sun.proxy.$Proxy31.beforeComplete(Unknown Source) at org.gradle.composite.internal.DefaultRootBuildState.run ( DefaultRootBuildState.java:124 ) at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute( RootBuildLifecycleBuildActionExecutor.java:40 ) at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute( DefaultBuildTreeContext.java:40 ) at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.lambda$execute$0( BuildTreeLifecycleBuildActionExecutor.java:65 ) at org.gradle.internal.buildtree.BuildTreeState.run ( BuildTreeState.java:53 ) at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute( BuildTreeLifecycleBuildActionExecutor.java:65 ) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call( RunAsBuildOperationBuildActionExecutor.java:61 ) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call( RunAsBuildOperationBuildActionExecutor.java:57 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute( DefaultBuildOperationRunner.java:204 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute( DefaultBuildOperationRunner.java:199 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute( DefaultBuildOperationRunner.java:66 ) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute( DefaultBuildOperationRunner.java:59 ) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute( DefaultBuildOperationRunner.java:157 ) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute( DefaultBuildOperationRunner.java:59 ) at org.gradle.internal.operations.DefaultBuildOperationRunner.call ( DefaultBuildOperationRunner.java:53 ) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call ( DefaultBuildOperationExecutor.java:73 ) at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute( RunAsBuildOperationBuildActionExecutor.java:57 ) at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.lambda$execute$0( RunAsWorkerThreadBuildActionExecutor.java:36 ) at org.gradle.internal.work .DefaultWorkerLeaseService.withLocks( DefaultWorkerLeaseService.java:249 ) at org.gradle.internal.work .DefaultWorkerLeaseService.runAsWorkerThread( DefaultWorkerLeaseService.java:109 ) at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute( RunAsWorkerThreadBuildActionExecutor.java:36 ) at org.gradle.tooling.internal.provider.continuous.ContinuousBuildActionExecutor.execute( ContinuousBuildActionExecutor.java:110 ) at org.gradle.tooling.internal.provider.SubscribableBuildActionExecutor.execute( SubscribableBuildActionExecutor.java:64 ) at org.gradle.internal.session.DefaultBuildSessionContext.execute( DefaultBuildSessionContext.java:46 ) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply( BuildSessionLifecycleBuildActionExecuter.java:100 ) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply( BuildSessionLifecycleBuildActionExecuter.java:88 ) at org.gradle.internal.session.BuildSessionState.run ( BuildSessionState.java:69 ) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute( BuildSessionLifecycleBuildActionExecuter.java:62 ) at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute( BuildSessionLifecycleBuildActionExecuter.java:41 ) at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute( StartParamsValidatingActionExecuter.java:63 ) at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute( StartParamsValidatingActionExecuter.java:31 ) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute( SessionFailureReportingActionExecuter.java:52 ) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute( SessionFailureReportingActionExecuter.java:40 ) at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute( SetupLoggingActionExecuter.java:47 ) at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute( SetupLoggingActionExecuter.java:31 ) at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild( ExecuteBuild.java:65 ) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute( BuildCommandOnly.java:37 ) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed( DaemonCommandExecution.java:104 ) at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute( WatchForDisconnection.java:39 ) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed( DaemonCommandExecution.java:104 ) at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute( ResetDeprecationLogger.java:29 ) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed( DaemonCommandExecution.java:104 ) at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute( RequestStopIfSingleUsedDaemon.java:35 ) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed( DaemonCommandExecution.java:104 ) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create( ForwardClientInput.java:78 ) at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create( ForwardClientInput.java:75 ) at org.gradle.util.internal.Swapper.swap( Swapper.java:38 ) at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute( ForwardClientInput.java:75 ) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed( DaemonCommandExecution.java:104 ) at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute( LogAndCheckHealth.java:55 ) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed( DaemonCommandExecution.java:104 ) at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild( LogToClient.java:63 ) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute( BuildCommandOnly.java:37 ) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed( DaemonCommandExecution.java:104 ) at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild( EstablishBuildEnvironment.java:84 ) at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute( BuildCommandOnly.java:37 ) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed( DaemonCommandExecution.java:104 ) at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run( StartBuildOrRespondWithBusy.java:52 ) at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run( DaemonStateCoordinator.java:297 ) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute( ExecutorPolicy.java:64 ) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run( ManagedExecutorImpl.java:49 ) Caused by: java.io .FileNotFoundException: D:\Study\hello-spring\.gradle\7.6.1\fileChanges\last-build.bin (??d?? �Ʃ�����? ?; ��?) at org.gradle.api.internal.changedetection.state.FileTimeStampInspector.updateOnFinishBuild( FileTimeStampInspector.java:70 ) ... 80 more * Get more help at https://help.gradle.org BUILD FAILED in 7s 이런식으로 계속 오류가나구요 자바버전도 11이고 부트 프로젝트 버전도 2.7.12 버전입니다 왜안되는지 모르겠네요 ㅠㅠ 2023-05-31 오전 11시 04분 경 jdk 재설치하고 경로도 다바꿔줬는데 여전히안되네요... 오후 16시 35분에 인텔리제이, jdk, 프로젝트 다 삭제하고 다시 다 깔아서 재시도했는데도 안되네요...
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemoryMemberRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*; class MemberServiceTest { MemberService memberService; MemoryMemberRepository memberRepository; @BeforeEach public void beforeEach() { memberRepository = new MemoryMemberRepository(); memberService = new MemberService(memberRepository); } @AfterEach public void afterEach() { memberRepository.clearStore(); } @Test public void 회원가입() throws Exception { //Given Member member = new Member(); member.setName("hello"); //When Long saveId = memberService.join(member); //Then Member findMember = memberRepository.findById(saveId).get(); assertEquals (member.getName(), findMember.getName()); } @Test public void 중복_회원_예외() throws Exception { //Given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //when memberService.join(member1); IllegalStateException e = assertThrows (IllegalStateException.class, () -> memberService.join(member2));//예외가 발생해야 한다. assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); assertThat (e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } } 이거 계속 오류나는데 왜그럴까요. org.opentest4j.AssertionFailedError: Expected java.lang.IllegalStateException to be thrown, but nothing was thrown. 이렇게 떠요
안녕하세요 호돌맨님! JWT 관련 강의에서 ArgumentResolver를 활용해 토큰 검증을 하고 사용자 정보를 추출해 반환하셨는데, 만약 프로젝트를 진행할 때 로그인을 해야 모든 URL에 접근할 수 있다고 한다면 아래 코드처럼 인터셉터에서 토큰 검증을 하고 ArgumentResolver에선 별다른 검증 없이 subject만 추출해서 반환해도 문제가 없을까요? 혹시 제가 접근 자체를 잘못하고 있다면 알려주시면 감사하겠습니다 @Slf4j @RequiredArgsConstructor public class LoginCheckInterceptor implements HandlerInterceptor { private final JwtService jwtService; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { String requestURI = request.getRequestURI(); log.info("인증 체크 인터셉터 실행 {}", requestURI); String accessToken = request.getHeader("Authorization"); jwtService.validateAccessToken(accessToken); try { jwtService.getSubject(accessToken); } catch (JwtException e) { throw new Unauthorized(); } return true; } } @RequiredArgsConstructor public class JwtArgumentResolver implements HandlerMethodArgumentResolver { private final JwtService jwtService; @Override public boolean supportsParameter(MethodParameter parameter) { boolean hasLoginAnnotation = parameter.hasParameterAnnotation(Login.class); boolean hasLoginType = LoginUser.class.isAssignableFrom(parameter.getParameterType()); return hasLoginAnnotation && hasLoginType; } @Override public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) { String accessToken = webRequest.getHeader("Authorization"); Long userId = jwtService.getSubject(accessToken); log.info("userId = {}", userId); return new LoginUser(userId); } }
연동을 다해놨는데, 스프링 실행할때 에러가 나네요.. 이유를 못찾겠습니다. 구글 드라이브에 올릴게요 강의는 회원등록 4분46초 부분 하고 있었습니다. https://drive.google.com/file/d/1Xes5ztWKL5s4NDre1bSuGeL2t-tbnJIO/view?usp=sharing
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 회원목록 조회시 Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Wed May 31 00:06:03 KST 2023 There was an unexpected error (type=Internal Server Error, status=500). No message available java.lang.NullPointerException at hello.hellospring.controller.MemberController.list( MemberController.java:40 ) 라고 뜨며 아래는 MemberController 코드입니다 package hello.hellospring.controller; import hello.hellospring.domain.Member; import hello.hellospring.service.MemberService; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @Controller public class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberService memberService) { this.memberService = memberService; } @GetMapping("/members/new") public String createForm() { return "members/createMemberForm"; } @PostMapping("/members/new") public String create(MemberForm form) { Member member = new Member(); member.setName(form.getName()); memberService.join(member); return "redirect:/"; } @GetMapping("/members") private String list(Model model) { List<Member> members = memberService.findMembers(); model.addAttribute("members", members); return "members/memberList"; } }
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 트랜잭셔널 어노테이션을 레포지토리나 컨트롤러가 아니라 서비스에 붙이는 이유가 있나요?
스프링이 제공하는 기능이 아니라 제가 직접해줘야하는건가요? 영속성 컨텍스트가 일정이상 차면 비워주는 작업을 어떻게 할 수 있을까요? 코드가 나와있긴하지만 그 코드는 너무 로우 레벨아닌가요?? SPRING DATA JPA사용하면서 em을 직접적으로 사용하진 않잖아요.. 자동으로 해주는건가요...?
안녕하세요. 7:32초 쯤에부터 말씀을 해주신 내용에 질문이 있습니다. 다음 강의인 JobParameter의 내용까지 모두 수강하고 해당 질문을 드리게 되었는데요. "이전과 동일한 Job, 그 다음에 똑같은 JobParameter의 값으로 실행이 되면 이미 존재하는 JobInstance를 리턴하고, 결국엔 수행이 실패합니다" "똑같은 Job과 똑같은 JobParameter의 내용으로 다시 수행할 필요가 없는거죠. 그럼 내용까지 똑같아 지니까" 위와 같이 말씀을 해주셨는데 해당 말씀을 듣고, 똑같은 Parameter의 "값"을 가진다고 해도 Job이 수행이 되어야하는게 아닌가? 왜 실패처리를 하게 Spring Batch에서 구현을 해놓은거지?라는 의문이 들었습니다. 그리고 이러한 의문을 가졌을때는 JobParameter에 대한 실습을 진행하지 않았던 상태여서 JobParameter를 넘기지 않는것을 토대로 Job을 실행시켜보았는데 강사님의 말씀대로 최초 한번만 실행되고 그 이후로는 Job이 실행되지 않고 Database에 이미 완료되었다는 Error Message와 함께 데이터가 쌓이더군요. 그래서 아 정말 그렇구나 JobParameter가 같으면("JobParameter가 없다"라는게 같음, 동일한 Job + Empty JobParameter) 실패처리를 하는구나라고 생각을 하고 강의 수강을 이어갔습니다. 그리고 다음 강의에서 JobParameter에 총 4개의 Parameter를 가지고 Job을 실행하시는 것을 보여주셨습니다. name=user1 seq=2 date=2021/01/01 age=16.5 JobInstance 강의에서 배운 내용을 가진채로, 저는 해당 Parameter의 값으로 여러번 실행하면 에러가 날줄 알았는데 예상과는 다르게 저의 처음 예상(똑같은 Parameter의 "값"을 가진다고 해도 수행이 되어야하는게 아닌가?)대로 정상적으로 모두 실행이 되었습니다. 또한 JobParameter 강의에서 강사님께서도 같은 Parameter를 가지고 여러번 수행했을때(jar, InteliJ Configuration으로 실행 방법은 달랐지만 넘기는 Parameter는 같은) 정상적으로 해당 Job이 성공을 하는 Flow가 강의에 담겨있었습니다. 배운것과 조금 다른것 같아서 아래 코드를 다시 살펴보았고, 동일한 Job + JobParameter의 "값"의 동일함이 아닌, 동일한 Job + JobParameter "객체"의 동일 여부를 가지고 JobInstance의 생성 및 실행을 구분하는것이 아닌가라는 결론을 내게 되었습니다. @Override public void run(ApplicationArguments args) throws Exception { JobParameters jobParameters = new JobParametersBuilder() .addString("name", "user1") .addLong("seq", 2L) .addDate("date", new Date()) .addDouble("age", 16.5) .toJobParameters(); jobLauncher.run(job, jobParameters); 위의 제 결론에 확신을 더 얻고자, 말도 안되는 코드인것 같지만 아래와 같이 수행을 해봤을때 IllegalStateException: Failed to execute ApplicationRunner 에러가 발생하였습니다. 아래 코드의 의도는 동일한 jobParameters라는 객체를 가지고 같은 Job을 실행시켰을때 오류가 날것이다라는 가정이였고, 오류가 났으니 제 가정이 맞는것 같습니다. @Override public void run(ApplicationArguments args) throws Exception { JobParameters jobParameters = new JobParametersBuilder() .addString("name", "user1") .addLong("seq", 2L) .addDate("date", new Date()) .addDouble("age", 16.5) .toJobParameters(); jobLauncher.run(job, jobParameters); // 같은 jobParameters 객체를 가지고 한번 더 실행 jobLauncher.run(job, jobParameters); 정리하자면, 동일한 Job + JobParameter의 "값"의 동일함이 아닌, 동일한 Job + JobParameter "객체"의 동일 여부를 가지고 JobInstance의 생성 및 실행을 구분하는것이 맞는것 같다인데, 혹시 제 생각이 맞을까요? 실제로 BATCH_JOB_EXECUTION_PARAMS 테이블에서 Parameter값들은 계속 같은게 들어오지만 BATCH_JOB_INSTANCE 테이블의 JOB_KEY값은 계속 다르게 저장이되네요.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. userDetailService를 강의에서 만들지도 않았는데 의존주입하는건 처음보네요; 깃허브 소스에도 없구요. 어떻게 구현하라는 뜻인가요. 진짜 환불하고싶습니다. 내용도 너무 어렵게 설명하구요.