inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

인터페이스와 구현체 관련 질문 있습니다.

해결됨

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 영한님 강의 중 회원 서비스 테스트까지 일단 습득을 하고 있는 중 @AfterEach 이과정에서 MemoryMemberRepository repository = new MemoryMemberRepository(); 이렇게 하셨지만 원래 인터페이스에서 가져와야한다고 하셔서 MemberRepository repository = new MemoryMemberRepository(); 인터페이스에서 가져와서 사용 하고 있습니다. 돌아가기는 잘 돌아 가는데, 여기서 질문이 노란전구가 뜨면서 alt + enter 했더니 MemoryMemberRepository repository = new MemoryMemberRepository(); 이렇게 바꾸라고 권장? 하는데요. 뭐가 맞는 것일까요??

  • java
  • spring
  • mvc
  • spring-boot
파바배라던도 댓글 1 좋아요 0 조회수 344

스프링부트 새로운파일 생성시Can not initialize cryptographic mechanism 오류...

해결됨

토비의 스프링 부트 - 이해와 원리

안녕하세요 강사님 요즘 너무 바빠서 강의를 못듣다가 다시 수강하게되었습니다 다른게아니고 새로운 스프링부트파일 생성할때 Can not initialize cryptographic mechanism 이런오류가 나버리는데 java.lang.ExceptionInInitializerError (no error message) > Can not initialize cryptographic mechanism * Try: > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Exception is: java.lang.ExceptionInInitializerError at org.gradle.internal.resource.transport.http.HttpClientConfigurer.jdkSupportsTLSProtocol( HttpClientConfigurer.java:115 ) at org.gradle.internal.resource.transport.http.HttpClientConfigurer.determineHttpsProtocols( HttpClientConfigurer.java:106 ) at org.gradle.internal.resource.transport.http.HttpClientConfigurer.<init>( HttpClientConfigurer.java:134 ) at org.gradle.internal.resource.transport.http.HttpClientHelper.getClient( HttpClientHelper.java:224 ) at org.gradle.internal.resource.transport.http.HttpClientHelper.performHttpRequest( HttpClientHelper.java:170 ) at org.gradle.internal.resource.transport.http.HttpClientHelper.performHttpRequest( HttpClientHelper.java:146 ) at org.gradle.internal.resource.transport.http.HttpClientHelper.executeGetOrHead( HttpClientHelper.java:135 ) at org.gradle.internal.resource.transport.http.HttpClientHelper.performRequest( HttpClientHelper.java:105 ) at org.gradle.internal.resource.transport.http.HttpClientHelper.performRawGet( HttpClientHelper.java:92 ) at org.gradle.internal.resource.transport.http.HttpClientHelper.performGet( HttpClientHelper.java:96 ) at org.gradle.internal.resource.transport.http.HttpResourceAccessor.openResource( HttpResourceAccessor.java:45 ) at org.gradle.internal.resource.transport.http.HttpResourceAccessor.openResource( HttpResourceAccessor.java:30 ) at org.gradle.internal.resource.transfer.AbstractExternalResourceAccessor.withContent( AbstractExternalResourceAccessor.java:32 ) at org.gradle.internal.resource.transfer.DefaultExternalResourceConnector.withContent( DefaultExternalResourceConnector.java:59 ) at org.gradle.internal.resource.transfer.ProgressLoggingExternalResourceAccessor$DownloadOperation.call( ProgressLoggingExternalResourceAccessor.java:122 ) 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.internal.resource.transfer.ProgressLoggingExternalResourceAccessor.withContent( ProgressLoggingExternalResourceAccessor.java:45 ) at org.gradle.internal.resource.transfer.AccessorBackedExternalResource.withContentIfPresent( AccessorBackedExternalResource.java:99 ) at org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor.copyToCache( DefaultCacheAwareExternalResourceAccessor.java:191 ) at org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor.lambda$getResource$1( DefaultCacheAwareExternalResourceAccessor.java:89 ) at org.gradle.cache.internal.ProducerGuard$AdaptiveProducerGuard.guardByKey( ProducerGuard.java:97 ) at org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor.getResource( DefaultCacheAwareExternalResourceAccessor.java:83 ) at org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver.downloadByCoords( DefaultExternalResourceArtifactResolver.java:149 ) at org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver.downloadStaticResource( DefaultExternalResourceArtifactResolver.java:94 ) at org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver.resolveArtifact( DefaultExternalResourceArtifactResolver.java:60 ) at org.gradle.api.internal.artifacts.repositories.metadata.AbstractRepositoryMetadataSource.parseMetaDataFromArtifact( AbstractRepositoryMetadataSource.java:78 ) at org.gradle.api.internal.artifacts.repositories.metadata.AbstractRepositoryMetadataSource.create( AbstractRepositoryMetadataSource.java:68 ) at org.gradle.api.internal.artifacts.repositories.metadata.DefaultMavenPomMetadataSource.create( DefaultMavenPomMetadataSource.java:40 ) at org.gradle.api.internal.artifacts.repositories.metadata.RedirectingGradleMetadataModuleMetadataSource.create( RedirectingGradleMetadataModuleMetadataSource.java:51 ) at org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver.resolveStaticDependency( ExternalResourceResolver.java:242 ) at org.gradle.api.internal.artifacts.repositories.resolver.MavenResolver.doResolveComponentMetaData( MavenResolver.java:115 ) at org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver$RemoteRepositoryAccess.resolveComponentMetaData( ExternalResourceResolver.java:457 ) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository$ResolveAndCacheRepositoryAccess.resolveComponentMetaData( CachingModuleComponentRepository.java:382 ) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.lambda$resolveComponentMetaData$5( ErrorHandlingModuleComponentRepository.java:152 ) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.lambda$tryResolveAndMaybeBlacklist$15( ErrorHandlingModuleComponentRepository.java:213 ) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.tryResolveAndMaybeBlacklist( ErrorHandlingModuleComponentRepository.java:227 ) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.tryResolveAndMaybeBlacklist( ErrorHandlingModuleComponentRepository.java:212 ) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.performOperationWithRetries( ErrorHandlingModuleComponentRepository.java:205 ) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.resolveComponentMetaData( ErrorHandlingModuleComponentRepository.java:151 ) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ComponentMetaDataResolveState.process( ComponentMetaDataResolveState.java:69 ) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ComponentMetaDataResolveState.resolve( ComponentMetaDataResolveState.java:61 ) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.findBestMatch( RepositoryChainComponentMetaDataResolver.java:139 ) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.findBestMatch( RepositoryChainComponentMetaDataResolver.java:120 ) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.resolveModule( RepositoryChainComponentMetaDataResolver.java:94 ) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.resolve( RepositoryChainComponentMetaDataResolver.java:65 ) at org.gradle.api.internal.artifacts.ivyservice.resolveengine.ComponentResolversChain$ComponentMetaDataResolverChain.resolve( ComponentResolversChain.java:106 ) at org.gradle.api.internal.artifacts.ivyservice.clientmodule.ClientModuleResolver.resolve( ClientModuleResolver.java:70 ) at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.ComponentState.resolve( ComponentState.java:230 ) at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.ComponentState.getResolveStateOrNull( ComponentState.java:177 ) at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.EdgeState.calculateTargetConfigurations( EdgeState.java:223 ) at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.EdgeState.attachToTargetConfigurations( EdgeState.java:152 ) at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.attachToTargetRevisionsSerially( DependencyGraphBuilder.java:371 ) at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.resolveEdges( DependencyGraphBuilder.java:254 ) at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.traverseGraph( DependencyGraphBuilder.java:191 ) at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.resolve( DependencyGraphBuilder.java:151 ) at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver.resolve( DefaultArtifactDependencyResolver.java:144 ) at org.gradle.api.internal.artifacts.ivyservice.DefaultConfigurationResolver.resolveGraph( DefaultConfigurationResolver.java:195 ) at org.gradle.api.internal.artifacts.ivyservice.ShortCircuitEmptyConfigurationResolver.resolveGraph( ShortCircuitEmptyConfigurationResolver.java:85 ) at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver.resolveGraph( ErrorHandlingConfigurationResolver.java:76 ) at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$1.call( DefaultConfiguration.java:657 ) at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$1.call( DefaultConfiguration.java:648 ) 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.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphIfRequired( DefaultConfiguration.java:648 ) at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.lambda$resolveExclusively$4( DefaultConfiguration.java:628 ) at org.gradle.api.internal.initialization.RootScriptDomainObjectContext$CalculatedModelValueImpl.update( RootScriptDomainObjectContext.java:143 ) at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveExclusively( DefaultConfiguration.java:625 ) at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveToStateOrLater( DefaultConfiguration.java:612 ) at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getResolvedConfiguration( DefaultConfiguration.java:587 ) at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getResolvedConfiguration(Unknown Source) at org.gradle.plugin.use.resolve.internal.ArtifactRepositoriesPluginResolver.exists( ArtifactRepositoriesPluginResolver.java:104 ) at org.gradle.plugin.use.resolve.internal.ArtifactRepositoriesPluginResolver.resolve( ArtifactRepositoriesPluginResolver.java:60 ) at org.gradle.plugin.use.resolve.internal.CompositePluginResolver.resolve( CompositePluginResolver.java:34 ) at org.gradle.plugin.use.resolve.internal.AlreadyOnClasspathPluginResolver.resolve( AlreadyOnClasspathPluginResolver.java:57 ) at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.resolveToFoundResult( DefaultPluginRequestApplicator.java:229 ) at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.lambda$resolvePluginRequests$3( DefaultPluginRequestApplicator.java:168 ) at org.gradle.util.internal.CollectionUtils.collect( CollectionUtils.java:212 ) at org.gradle.util.internal.CollectionUtils.collect( CollectionUtils.java:206 ) at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.resolvePluginRequests( DefaultPluginRequestApplicator.java:166 ) at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugins( DefaultPluginRequestApplicator.java:101 ) at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply( DefaultScriptPluginFactory.java:117 ) at org.gradle.configuration.BuildOperationScriptPlugin$1.run( BuildOperationScriptPlugin.java:65 ) 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.configuration.BuildOperationScriptPlugin.lambda$apply$0( BuildOperationScriptPlugin.java:62 ) at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply( DefaultUserCodeApplicationContext.java:44 ) at org.gradle.configuration.BuildOperationScriptPlugin.apply( BuildOperationScriptPlugin.java:62 ) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$applyToMutableState$0( DefaultProjectStateRegistry.java:360 ) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState( DefaultProjectStateRegistry.java:378 ) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.applyToMutableState( DefaultProjectStateRegistry.java:359 ) at org.gradle.configuration.project.BuildScriptProcessor.execute( BuildScriptProcessor.java:42 ) at org.gradle.configuration.project.BuildScriptProcessor.execute( BuildScriptProcessor.java:26 ) at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate( ConfigureActionsProjectEvaluator.java:35 ) at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.lambda$run$0( LifecycleProjectEvaluator.java:109 ) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$applyToMutableState$0( DefaultProjectStateRegistry.java:360 ) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$fromMutableState$1( DefaultProjectStateRegistry.java:383 ) at org.gradle.internal.work .DefaultWorkerLeaseService.withReplacedLocks( DefaultWorkerLeaseService.java:345 ) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState( DefaultProjectStateRegistry.java:383 ) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.applyToMutableState( DefaultProjectStateRegistry.java:359 ) at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.run( LifecycleProjectEvaluator.java:100 ) 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.configuration.project.LifecycleProjectEvaluator.evaluate( LifecycleProjectEvaluator.java:72 ) at org.gradle.api.internal.project.DefaultProject.evaluate( DefaultProject.java:762 ) at org.gradle.api.internal.project.DefaultProject.evaluate( DefaultProject.java:153 ) at org.gradle.api.internal.project.ProjectLifecycleController.lambda$ensureSelfConfigured$1( ProjectLifecycleController.java:63 ) 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$maybeTransitionIfNotCurrentlyTransitioning$9( StateTransitionController.java:196 ) at org.gradle.internal.work .DefaultSynchronizer.withLock( DefaultSynchronizer.java:34 ) at org.gradle.internal.model.StateTransitionController.maybeTransitionIfNotCurrentlyTransitioning( StateTransitionController.java:192 ) at org.gradle.api.internal.project.ProjectLifecycleController.ensureSelfConfigured( ProjectLifecycleController.java:63 ) at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.ensureConfigured( DefaultProjectStateRegistry.java:334 ) at org.gradle.execution.TaskPathProjectEvaluator.configure( TaskPathProjectEvaluator.java:33 ) at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy( TaskPathProjectEvaluator.java:47 ) at org.gradle.configuration.DefaultProjectsPreparer.prepareProjects( DefaultProjectsPreparer.java:50 ) at org.gradle.configuration.BuildTreePreparingProjectsPreparer.prepareProjects( BuildTreePreparingProjectsPreparer.java:64 ) at org.gradle.configuration.BuildOperationFiringProjectsPreparer$ConfigureBuild.run( BuildOperationFiringProjectsPreparer.java:52 ) 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.configuration.BuildOperationFiringProjectsPreparer.prepareProjects( BuildOperationFiringProjectsPreparer.java:40 ) at org.gradle.initialization.VintageBuildModelController.lambda$prepareProjects$2( VintageBuildModelController.java:84 ) 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.prepareProjects( VintageBuildModelController.java:84 ) at org.gradle.initialization.VintageBuildModelController.getConfiguredModel( VintageBuildModelController.java:64 ) at org.gradle.internal.build .DefaultBuildLifecycleController.lambda$withProjectsConfigured$1( DefaultBuildLifecycleController.java:116 ) 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.withProjectsConfigured( DefaultBuildLifecycleController.java:116 ) at org.gradle.internal.build .DefaultBuildToolingModelController.locateBuilderForTarget( DefaultBuildToolingModelController.java:57 ) at org.gradle.internal.buildtree.DefaultBuildTreeModelCreator$DefaultBuildTreeModelController.lambda$locateBuilderForTarget$0( DefaultBuildTreeModelCreator.java:73 ) at org.gradle.internal.build .DefaultBuildLifecycleController.withToolingModels( DefaultBuildLifecycleController.java:180 ) at org.gradle.internal.build .AbstractBuildState.withToolingModels( AbstractBuildState.java:123 ) at org.gradle.internal.buildtree.DefaultBuildTreeModelCreator$DefaultBuildTreeModelController.locateBuilderForTarget( DefaultBuildTreeModelCreator.java:73 ) at org.gradle.internal.buildtree.DefaultBuildTreeModelCreator$DefaultBuildTreeModelController.locateBuilderForDefaultTarget( DefaultBuildTreeModelCreator.java:68 ) at org.gradle.tooling.internal.provider.runner.DefaultBuildController.getTarget( DefaultBuildController.java:157 ) at org.gradle.tooling.internal.provider.runner.DefaultBuildController.getModel( DefaultBuildController.java:101 ) 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.findModel( UnparameterizedBuildController.java:97 ) at org.gradle.tooling.internal.consumer.connection.NestedActionAwareBuildControllerAdapter.findModel( NestedActionAwareBuildControllerAdapter.java:31 ) at org.gradle.tooling.internal.consumer.connection.UnparameterizedBuildController.findModel( UnparameterizedBuildController.java:81 ) at org.gradle.tooling.internal.consumer.connection.NestedActionAwareBuildControllerAdapter.findModel( NestedActionAwareBuildControllerAdapter.java:31 ) at org.gradle.tooling.internal.consumer.connection.UnparameterizedBuildController.findModel( UnparameterizedBuildController.java:66 ) at org.gradle.tooling.internal.consumer.connection.NestedActionAwareBuildControllerAdapter.findModel( NestedActionAwareBuildControllerAdapter.java:31 ) at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute( ProjectImportAction.java:126 ) 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 ) 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: java.lang.SecurityException: Can not initialize cryptographic mechanism ... 268 more Caused by: java.lang.SecurityException: Can't read cryptographic policy directory: unlimited ... 268 more 이건 전체오류내용입니다 혹시 해결가능하실까요... 만드시는것처럼 똑같이 생성했습니다 ㅠㅠ

  • spring
  • spring-boot
  • spring-jdbc
김성민 댓글 1 좋아요 1 조회수 948

사용자 정의 ExitStatus를 listener에서 정의 하는 이유

미해결

스프링 배치

사용자 정의 ExitStatus 를 StepExecutionListener.afterStep 에서 정의하는 이유가 궁금합니다. Tasklet 안에서 조건에 따라 contribution.setExitStatus(new ExitStatus("PASS")); 를 사용해도 되는게 아닌가 싶은데, 그냥 afterStep 에서도 할 수 있다는걸 보여준걸까요? 또, 다음 강의인 JobExecutionDecider 는 사용자 정의 StepExecutionListener.afterStep 에서 사용자 종료 코드를 정의하는 것을 대체한다고 생각하면 되는걸까요?

  • spring-boot
  • spring-batch
화이팅 댓글 2 좋아요 0 조회수 473

springboot 2.7.x 버전 안되시는 분들 혹시 참고...

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

config: name: ecommerce import: optional:configserver:http://localhost:8888 # boot 2.4부터 부트스트랩 x application: name: USER-SERVICE 이렇게 된 경우 config name 을 가져가는게 아니라 application name 으로 yaml 을 계속 찾네요.. 흠.. 자답합니다 스프링부트 2.7.11 config, bootstrap 아래 의존성으로 교체 <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-config --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> <version>3.1.0</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-bootstrap --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> <version>3.1.3</version> </dependency> application.yml 에 아래 코드추가 spring: config: import: classpath:/bootstrap.yml bootstrap.yml은 동일히 작성 위 과정 거치고 돌렸더니 드디어... config 가져오네요... springboot 버전과 의존 라이브러리 최신버전과 호환이 안되었던건지 이틀 간 찾아본듯 😂 spring boot 2.7.x 버전 yml 설정 이렇게 하면 됩니다. - 인프런 | 질문 & 답변 ( inflearn.com )

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
DDD 댓글 1 좋아요 0 조회수 2431

FatJar에 대해 문의드립니다.

미해결

스프링 부트 - 핵심 원리와 활용

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. jar -xvf embed-0.0.1-SNAPSHOT.jar 압축을풀면 아래와같은 디렉토리가 생성됨과 동시에 jar풀면서 오류가 발생하는데 이게 맞을까요??,, 혹시 해결방법이 있는지 문의드립니다.

  • spring
  • spring-boot
  • prometheus
  • grafana
이경용 댓글 1 좋아요 0 조회수 644

NullpointerException이 발생합니다

미해결

스프링 시큐리티

회원 가입 시 DB에 정상적으로 회원 정보가 생성은 되는데 이 후 로그인 시도 시 CustomAuthenticationProvider에서 userDetailsService.loadUserByUsername(username); 수행 시 Null을 반환합니다. java.lang.NullPointerException: Cannot invoke " io.security.corespringsecurity.security .service.CustomUserDetailsService.loadUserByUsername(String)" because "this.userDetailsService" is null at io.security.corespringsecurity.security .provider.CustomAuthenticationProvider.authenticate( CustomAuthenticationProvider.java:26 ) ~[classes/:na]

  • java
  • spring-boot
  • spring-security
kimdudtj3070 댓글 1 좋아요 0 조회수 1048

띄어쓰기 안하는 이유가 궁금해요

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요! 좋은 강의 제공해주셔서 감사합니다. mvn spring-boot: run-Dspring-boot.run .jvmArguments='-Dserver.port=9003' 다음과 같은 명령어나 실행 옵션에서 -D와 같은 옵션을 띄어쓰기 없이 사용하는 이유가 있을까요?

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
클클msa 댓글 1 좋아요 0 조회수 573

띄어쓰기 안하는 이유가 궁금해요

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요! 좋은 강의 제공해주셔서 감사합니다. mvn spring-boot: run-Dspring-boot.run .jvmArguments='-Dserver.port=9003' 다음과 같은 명령어나 실행 옵션에서 -D와 같은 옵션을 띄어쓰기 없이 사용하는 이유가 있을까요?

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
클클msa 댓글 1 좋아요 0 조회수 436

ItemStream close(); 메서드

미해결

스프링 배치

close 는 중간에 오류가 나면 바로 close 메서드가 자동 실행되고 그렇지 않으면 모든 open update 메서드가 끝나면 자동 실행 된다고생각하면 되는건가요 ?

  • spring-boot
  • spring-batch
H K 댓글 1 좋아요 0 조회수 411

22강 질문입니다.

해결됨

[개념은 호옹~, 실습 빡] 스프링 부트, 입문!

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. CommentRepositoryTest에서 findByNickname를 실행할때 아래와 같은 오류가 나타납니다. org.springframework.dao.InvalidDataAccessApiUsageException: Could not locate ordinal parameter [1], expecting one of []; nested exception is java.lang.IllegalArgumentException: Could not locate ordinal parameter [1], expecting one of []가 나타나는데, 찾아보니 @Param을 하라고 하네요. 근데 @Param은 @Query를 사용할때에 대한 해결방안인데, xml로 쿼리를 작성한 findByNickname에서는 어떻게 해결해야하나요?

  • spring-boot
반짝반짝한 사막여우 댓글 1 좋아요 0 조회수 390

웹 계층 파트에서 백엔드 개발자가 하는 역할이 궁금합니다.

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. 김영한님의 스프링, 스프링부트 강의를 정말 재밌게 듣고 있는 한 대학생입니다. 강의를 듣던 중에 공부방향에 대해서 궁금한 것이 생겼는데요. 이번 웹 계층 개발 파트에서는 특히 js나 css에 대한 내용들이 thymleaf와 함께 많이 다루어지는 것 같습니다. 물론 기본적인 html태그들은 그냥 자주 보다보면 외워지겠지만 이런 부분들을 본격적으로 따로 공부할 필요가 있는지 궁금합니다. 나중에 실무에서 제가 DB설계를 하고 도메인, 서비스 계층을 짜는 것은 상상이 되고 지금 공부하고 있는 방향과도 맞는 것 같아서 재밌을 것 같은데, 이런 프론트적인 부분? 은 그냥 복붙하고 넘기면 되는지, 아니면 실무에서 제가 실제로 다루게 될 부분일지 경계가 모호한 것 같습니다. 정리하자면, 1. 실무에서 백엔드 개발자는 어떤 일을 주로 맡게 되는지, 2. 그래서 이번 웹 계층 파트에서 다루어지는 thymleaf나 js,css, html 내용을 본격적으로 공부해야 하는지 궁금합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
Dompoo 댓글 1 좋아요 1 조회수 805

회원 서비스 개발 단축키 에러 / .ifPresent부분이 에러

미해결

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

[질문 내용] 회원서비스개발에서 2:18에 1. 무슨 단축키를 누르면 Optional<Member> byName = 이 뜨나요? 저는 그냥 타이핑했는데 어떻게 하면 그렇게 생기죠? 2.그리고 단축키 command option v 로 byName을 result로 변경했는데 그것도 단축키를 하면 왜 단축키를 했을 때 수업처럼 옵션이 안뜰까요 3.Optional<Member> byName = 부분 지우고 result부분 지우고 코드 정리했을 때 저는 .ifPresent부분이 에러가 납니다. 4.강의에 4:56 부분 control + t 로 method입력해서 Extract Method 가 뜨는데 저는 안뜹니다. command option m 단축키로 Extract Method를 시도했는데 사용할수없다는데..어떻게해야되나요 확인부탁드릴게요...

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

Ajax로그인 - loginProcessingUrl("/api/login") 관련 질문있습니다

해결됨

스프링 시큐리티

안녕하세요 강사님. 강의를 따라 실습하는데 강사님과 다르게 동작합니다. 이유를 못찾아서 도움이 필요합니다 ㅠㅠ 7) Ajax로그인 구현 & CSRF설정 15:00 부분 강의에서는 브라우저에서 window.location = '/api/login?error=true&exception=' + xhr.responseJSON.message; 호출이후 서버에서 로그인 컨트롤러가 호출되는데, 저는 window.location 이후 AjaxLoginAuthenticationEntryPoint 가 다시 호출됩니다. 그래서 AjaxSecurityConfig 클래스에 .antMatchers("/api/login/**").permitAll() 를 추가해서 테스트 해보았더니 컨트롤러가 호출 되었습니다. 왜 강사님과 다르게 저는 window.location 이후 AjaxLoginAuthenticationEntryPoint가 왜 다시 호출되는지 알 수 있을까요? https://github.com/GwanUk/basicsecurity.git

  • java
  • spring-boot
  • spring-security
김관욱 댓글 2 좋아요 0 조회수 888

로깅 하이버네이트 SQL

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

main] org.hibernate.SQL : drop table if exists category CASCADE 이런 식으로 전부 다 main] org.hibernate.SQL 오류로 인해서 table 형태가 보이지 않아요..yml에 들어가보니 logging.level.org.hibernate.SQL: debug에 빨간불이 들어옵니다. 어떻게 하면 해결할 수 있을까요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
정 현 댓글 1 좋아요 0 조회수 580

13:41 쯤에 데이터를 다시 넣어줘야 한다는 부분이 이해가 잘 안갑니다.

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

13:41 부분에서 데이터를 끄집어 내서 파라미터 넣고 다 시 넣어줘야한다. 고 설명해주시는데요 왜 이렇게 해야 하는건지 이해가 잘 안됩니다. 안해주면 어떤 문제가 발생하는지 궁금합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
timber3 댓글 2 좋아요 0 조회수 477

이제 쿼리 파라미터 외부 라이브러리 spring 3.0 지원합니다.

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 수업자료 pdf 16~17 page에 나와있는 https://github.com/gavlyukovskiy/spring-boot-source-decorator 에서 이제 spring boot 3.0 지원한다고 하여 알려드립니다. (version: 1.9.0)

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
DH L 댓글 2 좋아요 1 조회수 698

상품 주문 Submit 시 오류 발생

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요. 상품 주문 Submit 시 오류가 발생하여 문의드립니다. 오류를 살펴보니, CASCDAE와 관련된 오류라고 하더라구요.. 기존 Order 도메인 클래스의 member 부분이 이렇게 선언이 되어 있었는데 @ManyToOne(fetch = LAZY) @JoinColumn(name = "member_id") private Member member; 오류를 보고 나서 cascade = CascadeType.ALL 옵션을 추가해주니까 오류 없이 동작을 하긴 하는데 이게 맞나 싶어서 문의드립니다.. @ManyToOne(fetch = LAZY, cascade = CascadeType.ALL) @JoinColumn(name = "member_id") private Member member; 발생 오류입니다. 인텔리제이 콘솔에 찍힌 로그이고요.. org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : jpabook.jpashop.domain.Order.member -> jpabook.jpashop.domain.Member at org.hibernate.engine.spi.CascadingActions$8.noCascade(CascadingActions.java:379) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final] at org.hibernate.engine.internal.Cascade.cascade(Cascade.java:169) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final] at org.hibernate.event.internal.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:159) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final] at org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:149) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final] at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:82) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final] at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final] at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:107) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final] at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1407) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final] at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:489) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final] at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:3303) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final] at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2438) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final] at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:449) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final] at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:183) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final] at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$300(JdbcResourceLocalTransactionCoordinatorImpl.java:40) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final] at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:281) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final] at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:101) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final] at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:562) ~[spring-orm-5.3.27.jar:5.3.27] at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:743) ~[spring-tx-5.3.27.jar:5.3.27] at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:711) ~[spring-tx-5.3.27.jar:5.3.27] at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:654) ~[spring-tx-5.3.27.jar:5.3.27] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:407) ~[spring-tx-5.3.27.jar:5.3.27] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.27.jar:5.3.27] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.27.jar:5.3.27] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.27.jar:5.3.27] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.27.jar:5.3.27] at jpabook.jpashop.service.OrderService$$EnhancerBySpringCGLIB$$c3aef6ec.order(<generated>) ~[classes/:na] at jpabook.jpashop.controller.OrderController.order(OrderController.java:42) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[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:566) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.27.jar:5.3.27] at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.27.jar:5.3.27] at javax.servlet.http.HttpServlet.service(HttpServlet.java:555) ~[tomcat-embed-core-9.0.74.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.27.jar:5.3.27] at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) ~[tomcat-embed-core-9.0.74.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.27.jar:5.3.27] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.27.jar:5.3.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.74.jar:9.0.74] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na] 웹 브라우저에 출력된 에러 페이지입니다. Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Tue May 23 16:25:07 KST 2023 There was an unexpected error (type=Internal Server Error, status=500). org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : jpabook.jpashop.domain.Order.member -> jpabook.jpashop.domain.Member; nested exception is java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : jpabook.jpashop.domain.Order.member -> jpabook.jpashop.domain.Member org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : jpabook.jpashop.domain.Order.member -> jpabook.jpashop.domain.Member; nested exception is java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : jpabook.jpashop.domain.Order.member -> jpabook.jpashop.domain.Member at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible( EntityManagerFactoryUtils.java:371 ) at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible( HibernateJpaDialect.java:235 ) at org.springframework.orm.jpa.JpaTransactionManager.doCommit( JpaTransactionManager.java:566 ) at org.springframework.transaction.support .AbstractPlatformTransactionManager.processCommit( AbstractPlatformTransactionManager.java:743 ) at org.springframework.transaction.support .AbstractPlatformTransactionManager.commit( AbstractPlatformTransactionManager.java:711 ) at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning( TransactionAspectSupport.java:654 ) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction( TransactionAspectSupport.java:407 ) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke( TransactionInterceptor.java:119 ) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:186 ) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed( CglibAopProxy.java:763 ) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept( CglibAopProxy.java:708 ) at jpabook.jpashop.service.OrderService$$EnhancerBySpringCGLIB$$c3aef6ec.order(<generated>) at jpabook.jpashop.controller.OrderController.order( OrderController.java:42 ) 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 java.base/java.lang.reflect.Method.invoke( Method.java:566 ) at org.springframework.web.method.support .InvocableHandlerMethod.doInvoke( InvocableHandlerMethod.java:205 ) at org.springframework.web.method.support .InvocableHandlerMethod.invokeForRequest( InvocableHandlerMethod.java:150 ) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle( ServletInvocableHandlerMethod.java:117 ) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod( RequestMappingHandlerAdapter.java:895 ) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal( RequestMappingHandlerAdapter.java:808 ) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle( AbstractHandlerMethodAdapter.java:87 ) at org.springframework.web.servlet.DispatcherServlet.doDispatch( DispatcherServlet.java:1072 ) at org.springframework.web.servlet.DispatcherServlet.doService( DispatcherServlet.java:965 ) at org.springframework.web.servlet.FrameworkServlet.processRequest( FrameworkServlet.java:1006 ) at org.springframework.web.servlet.FrameworkServlet.doPost( FrameworkServlet.java:909 ) at javax.servlet.http.HttpServlet.service( HttpServlet.java:555 ) at org.springframework.web.servlet.FrameworkServlet.service( FrameworkServlet.java:883 ) at javax.servlet.http.HttpServlet.service( HttpServlet.java:623 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:209 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) at org.apache.tomcat.websocket.server.WsFilter.doFilter( WsFilter.java:51 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) at org.springframework.web.filter.RequestContextFilter.doFilterInternal( RequestContextFilter.java:100 ) at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) at org.springframework.web.filter.FormContentFilter.doFilterInternal( FormContentFilter.java:93 ) at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal( CharacterEncodingFilter.java:201 ) at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:117 ) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:178 ) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:153 ) at org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:167 ) at org.apache.catalina.core.StandardContextValve.invoke( StandardContextValve.java:90 ) at org.apache.catalina.authenticator.AuthenticatorBase.invoke( AuthenticatorBase.java:481 ) at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:130 ) at org.apache.catalina.valves.ErrorReportValve.invoke( ErrorReportValve.java:93 ) at org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:74 ) at org.apache.catalina.connector.CoyoteAdapter.service( CoyoteAdapter.java:343 ) at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:389 ) at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:63 ) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:926 ) at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1791 ) at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:52 ) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1191 ) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:659 ) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( TaskThread.java:61 ) at java.base/java.lang.Thread.run( Thread.java:834 ) Caused by: java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : jpabook.jpashop.domain.Order.member -> jpabook.jpashop.domain.Member at org.hibernate.internal.ExceptionConverterImpl.convert( ExceptionConverterImpl.java:151 ) at org.hibernate.internal.ExceptionConverterImpl.convert( ExceptionConverterImpl.java:181 ) at org.hibernate.internal.ExceptionConverterImpl.convert( ExceptionConverterImpl.java:188 ) at org.hibernate.internal.SessionImpl.doFlush( SessionImpl.java:1411 ) at org.hibernate.internal.SessionImpl.managedFlush( SessionImpl.java:489 ) at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion( SessionImpl.java:3303 ) at org.hibernate.internal.SessionImpl.beforeTransactionCompletion( SessionImpl.java:2438 ) at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion( JdbcCoordinatorImpl.java:449 ) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback( JdbcResourceLocalTransactionCoordinatorImpl.java:183 ) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$300( JdbcResourceLocalTransactionCoordinatorImpl.java:40 ) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit( JdbcResourceLocalTransactionCoordinatorImpl.java:281 ) at org.hibernate.engine.transaction.internal.TransactionImpl.commit( TransactionImpl.java:101 ) at org.springframework.orm.jpa.JpaTransactionManager.doCommit( JpaTransactionManager.java:562 ) ... 60 more Caused by: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : jpabook.jpashop.domain.Order.member -> jpabook.jpashop.domain.Member at org.hibernate.engine.spi.CascadingActions$8.noCascade( CascadingActions.java:379 ) at org.hibernate.engine.internal.Cascade.cascade( Cascade.java:169 ) at org.hibernate.event.internal.AbstractFlushingEventListener.cascadeOnFlush( AbstractFlushingEventListener.java:159 ) at org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes( AbstractFlushingEventListener.java:149 ) at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions( AbstractFlushingEventListener.java:82 ) at org.hibernate.event.internal.DefaultFlushEventListener.onFlush( DefaultFlushEventListener.java:39 ) at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener( EventListenerGroupImpl.java:107 ) at org.hibernate.internal.SessionImpl.doFlush( SessionImpl.java:1407 ) ... 69 more 작성한 코드도 올려두겠습니다. package jpabook.jpashop.controller; import jpabook.jpashop.domain.Member; import jpabook.jpashop.domain.item.Item; import jpabook.jpashop.service.ItemService; import jpabook.jpashop.service.MemberService; import jpabook.jpashop.service.OrderService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @Controller @RequiredArgsConstructor public class OrderController { private final OrderService orderService; private final MemberService memberService; private final ItemService itemService; @GetMapping("/order") public String createForm(Model model){ List<Member> members = memberService.findMembers(); List<Item> items = itemService.findItems(); model.addAttribute("members", members); model.addAttribute("items", items); return "order/orderForm"; } @PostMapping("/order") public String order(@RequestParam("memberId") Long memberId, @RequestParam("itemId") Long itemId, @RequestParam("count") int count){ orderService.order(memberId, itemId, count); return "redirect:/orders"; } } package jpabook.jpashop.service; import jpabook.jpashop.domain.Delivery; import jpabook.jpashop.domain.Member; import jpabook.jpashop.domain.Order; import jpabook.jpashop.domain.OrderItem; import jpabook.jpashop.domain.item.Item; import jpabook.jpashop.repository.ItemRepository; import jpabook.jpashop.repository.MemberRepository; import jpabook.jpashop.repository.OrderRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service @Transactional(readOnly = true) @RequiredArgsConstructor public class OrderService { private final OrderRepository orderRepository; private final MemberRepository memberRepository; private final ItemRepository itemRepository; //주문 @Transactional public Long order(Long memberId, Long itemId, int count){ /* 엔티티 조회 */ //회원 조회 Member member = memberRepository.findOne(memberId); //상품 조회 Item item = itemRepository.findOne(itemId); //배송정보 생성 Delivery delivery = new Delivery(); delivery.setAddress(member.getAddress()); //주문상품 생성 OrderItem orderItem = OrderItem.createOrderItem(item, item.getPrice(), count); //주문 생성 Order order = Order.createOrder(member, delivery, orderItem); //주문 저장 orderRepository.save(order); //주문 식별자 반환 (ID) return order.getId(); } //주문 취소 @Transactional public void cancelOrder(Long orderId){ // 주문 엔티티 조회 Order order = orderRepository.findOne(orderId); //주문 취소 order.cancel(); } /*//검색 public List<Order> findOrders(OrderSearch orderSearch){ return orderRepository.findAll(orderSearch); }*/ } package jpabook.jpashop.domain; import lombok.AccessLevel; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import org.aspectj.weaver.ast.Or; import javax.persistence.*; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import static javax.persistence.FetchType.LAZY; @Entity @Table(name = "orders") @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Order { @Id @GeneratedValue @Column(name="order_id") private Long id; @ManyToOne(fetch = LAZY) @JoinColumn(name = "member_id") private Member member; @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); @OneToOne(fetch = LAZY, cascade = CascadeType.ALL) @JoinColumn(name = "delivery_id") private Delivery delivery; private LocalDateTime orderDate; @Enumerated(EnumType.STRING) private OrderStatus status; //주문상태 [ORDER, CANCEL] //== 연관관계 메서드 ==/ //== 양방향 연관관계에서의 편의 메서드 ==/ public void setMember(Member member){ this.member = new Member(); member.getOrders().add(this); } public void addOrderItem(OrderItem orderItem){ orderItems.add(orderItem); orderItem.setOrder(this); } public void setDelivery(Delivery delivery){ this.delivery = delivery; delivery.setOrder(this); } //==생성 메서드==// public static Order createOrder(Member member, Delivery delivery, OrderItem... orderItems){ Order order = new Order(); order.setMember(member); order.setDelivery(delivery); for (OrderItem orderItem : orderItems){ order.addOrderItem(orderItem); } order.setStatus(OrderStatus.ORDER); order.setOrderDate(LocalDateTime.now()); return order; } //==비즈니스 로직==// /* * 주문 취소 * */ public void cancel(){ if(delivery.getStatus() == DeliveryStatus.COMP){ throw new IllegalStateException("이미 배송 완료된 상품은 취소가 불가능합니다."); } this.setStatus(OrderStatus.CANCEL); for (OrderItem orderItem : orderItems){ orderItem.cancel(); } } //==조회 로직==// /** * 전체 주문 가격 조회 */ public int getTotalPrice(){ int totalPrice = 0; for (OrderItem orderItem : orderItems){ totalPrice += orderItem.getTotalPrice(); } return totalPrice; } } package jpabook.jpashop.domain; import lombok.Getter; import lombok.Setter; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String name; @Embedded private Address address; @OneToMany(mappedBy = "member") private List<Order> orders = new ArrayList<>(); }

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
Woxxy 댓글 1 좋아요 0 조회수 672

19강 create POST 500 에러

해결됨

[개념은 호옹~, 실습 빡] 스프링 부트, 입문!

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 위를 실행하고 난 결과 콘솔창에서 아래 오류가 발생합니다. 구글링으로 오류를 찾아보니 ArticleForm에서 @Data나 @JsonAutoDetect(fieldVisibility = Visibility.ANY)를 작성하라고 하는데 둘다 적용해도 마찬가지로 위와 같은 오류가 발생합니다. 어떻게 해결해야하나요?

  • spring-boot
반짝반짝한 사막여우 댓글 1 좋아요 0 조회수 476

코드를 가지고 at를 요청하는 걸 custom 할 수 있나요?

미해결

스프링 시큐리티 OAuth2

프론트에서 코드를 백으로 보내면 해당 코드로 at 를 받아서 유저 정보를 가져오고 싶은데 이렇게 하는게 가능한가요?

  • java
  • spring
  • spring-boot
  • oauth
안호성 댓글 2 좋아요 0 조회수 470

인기 태그

인프런 TOP Writers

주간 인기글