Projects/[Spring] Ticketing App Project

[AWS] (2부) EC2 배포 성공기

montmer27 2026. 3. 19. 21:58

상황: 8080 포트에서 잘 리스닝 중. 그런데 실행 로그를 보니 계속 실행이 안 되고 있음.

실행 로그를 보니 또 파라미터 레디스 주소 문제임.
원인은 자동 주입된 Redisson 빈이 [host:port] 형식으로 redis host 주소를 조합하기 때문.

더보기

sh-5.2$ sudo docker logs ci-demo --tail 50
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:485) ~[spring-beans-6.1.14.jar!/:6.1.14]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355) ~[spring-beans-6.1.14.jar!/:6.1.14]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185) ~[spring-beans-6.1.14.jar!/:6.1.14]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) ~[spring-beans-6.1.14.jar!/:6.1.14]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.14.jar!/:6.1.14]
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.14.jar!/:6.1.14]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.14.jar!/:6.1.14]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.14.jar!/:6.1.14]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.14.jar!/:6.1.14]
        at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.1.14.jar!/:6.1.14]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) ~[spring-beans-6.1.14.jar!/:6.1.14]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) ~[spring-beans-6.1.14.jar!/:6.1.14]
        at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904) ~[spring-beans-6.1.14.jar!/:6.1.14]
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782) ~[spring-beans-6.1.14.jar!/:6.1.14]
        ... 68 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redissonClient' threw exception with message: java.net.MalformedURLException: Invalid host: [ticketing-redis.xjgiaw.ng.0001.apn2.cache.amazonaws.com:6379]
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:178) ~[spring-beans-6.1.14.jar!/:6.1.14]
        at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644) ~[spring-beans-6.1.14.jar!/:6.1.14]
        ... 82 common frames omitted
Caused by: java.lang.IllegalArgumentException: java.net.MalformedURLException: Invalid host: [ticketing-redis.xjgiaw.ng.0001.apn2.cache.amazonaws.com:6379]
        at org.redisson.misc.RedisURI.<init>(RedisURI.java:70) ~[redisson-3.27.2.jar!/:3.27.2]
        at org.redisson.connection.MasterSlaveConnectionManager.doConnect(MasterSlaveConnectionManager.java:224) ~[redisson-3.27.2.jar!/:3.27.2]
        at org.redisson.connection.MasterSlaveConnectionManager.connect(MasterSlaveConnectionManager.java:196) ~[redisson-3.27.2.jar!/:3.27.2]
        at org.redisson.config.ConfigSupport.createConnectionManager(ConfigSupport.java:220) ~[redisson-3.27.2.jar!/:3.27.2]
        at org.redisson.Redisson.<init>(Redisson.java:71) ~[redisson-3.27.2.jar!/:3.27.2]
        at org.redisson.Redisson.create(Redisson.java:116) ~[redisson-3.27.2.jar!/:3.27.2]
        at cohttp://m.example.ticketingproject.redis.config.RedisConfig.redissonClient(RedisConfig.java:35) ~[!/:0.0.1-SNAPSHOT]
        at cohttp://m.example.ticketingproject.redis.config.RedisConfig$SpringCGLIB$0.CGLIB$redissonClient$2(<generated>) ~[!/:0.0.1-SNAPSHOT]
        at cohttp://m.example.ticketingproject.redis.config.RedisConfig$SpringCGLIB$FastClass$1.invoke(<generated>) ~[!/:0.0.1-SNAPSHOT]
        at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258) ~[spring-core-6.1.14.jar!/:6.1.14]
        at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:348) ~[spring-context-6.1.14.jar!/:6.1.14]
        at cohttp://m.example.ticketingproject.redis.config.RedisConfig$SpringCGLIB$0.redissonClient(<generated>) ~[!/:0.0.1-SNAPSHOT]
        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:569) ~[na:na]
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) ~[spring-beans-6.1.14.jar!/:6.1.14]
        ... 83 common frames omitted
Caused by: java.net.MalformedURLException: Invalid host: [ticketing-redis.xjgiaw.ng.0001.apn2.cache.amazonaws.com:6379]
        at java.base/java.net.URL.<init>(URL.java:708) ~[na:na]
        at java.base/java.net.URL.<init>(URL.java:569) ~[na:na]
        at java.base/java.net.URL.<init>(URL.java:516) ~[na:na]
        at org.redisson.misc.RedisURI.<init>(RedisURI.java:56) ~[redisson-3.27.2.jar!/:3.27.2]
        ... 99 common frames omitted
Caused by: java.lang.IllegalArgumentException: Invalid host: [ticketing-redis.xjgiaw.ng.0001.apn2.cache.amazonaws.com:6379]
        at java.base/java.net.URLStreamHandler.parseURL(URLStreamHandler.java:209) ~[na:na]
        at java.base/java.net.URL.<init>(URL.java:703) ~[na:na]
        ... 102 common frames omitted

Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts

해결: Spring Boot 실행 시 Redisson 자동 설정 제거 필요, RedissonAutoConfiguration을 끄면 됨.

application-prod.yml에 다음을 추가하면 됨. 메인 클래스에서 제외하는 방법도 있는데, application-prod.yml을 바꾸는 방법이 더 간단함.

spring:
  autoconfigure:
    exclude:
      - org.redisson.spring.starter.RedissonAutoConfigurationV2
      - org.redisson.spring.starter.RedissonAutoConfiguration

Q: Redisson을 사용하는 기존 코드에도 영향이 가지 않나?

A: RedissonAutoConfiguration의 역할은 RedissonClientBean을 자동 생성해주는 역할인데, 우리는 이미 이전 게시물 에서 RedissonClient 빈을 직접 등록하는 절차를 마침.

즉, 직접 빈을 등록하는 절차는 넣었는데, 정작 문제의 원인이었던 자동 등록을 끄지 않아서 발생한 것.

다시 main으로 merge 후 헬스체크 시도 : curl http://localhost:8080/actuator/health

sh-5.2$ curl http://localhost:8080/actuator/health
curl: (52) Empty reply from server

결과 해석: 서버가 켜지고 있거나 죽어가는 중...모 아니면 도 상황.

1. 로그 확인

더보기

sh-5.2$ sudo docker logs ci-demo --tail 50
        at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2096) ~[na:na]
        at org.redisson.connection.MasterSlaveConnectionManager.doConnect(MasterSlaveConnectionManager.java:228) ~[redisson-3.27.2.jar!/:3.27.2]
        ... 98 common frames omitted
Caused by: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: ticketing-redis.xjgiaw.ng.0001.apn2.cache.amazonaws.com/10.0.155.48:6379
        at org.redisson.connection.ConnectionsHolder.lambda$createConnection$2(ConnectionsHolder.java:165) ~[redisson-3.27.2.jar!/:3.27.2]
        at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:934) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:911) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2162) ~[na:na]
        at org.redisson.connection.ConnectionsHolder.lambda$createConnection$5(ConnectionsHolder.java:179) ~[redisson-3.27.2.jar!/:3.27.2]
        at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:841) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2162) ~[na:na]
        at org.redisson.client.RedisClient$1$2.run(RedisClient.java:304) ~[redisson-3.27.2.jar!/:3.27.2]
        at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final]
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.114.Final.jar!/:4.1.114.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final]
        at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]
Caused by: java.util.concurrent.CompletionException: io.netty.channel.ConnectTimeoutException: connection timed out after 10000 ms: ticketing-redis.xjgiaw.ng.0001.apn2.cache.amazonaws.com/10.0.155.48:6379
        at java.base/java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:368) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:377) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture$UniRelay.tryFire(CompletableFuture.java:1097) ~[na:na]
        ... 11 common frames omitted
Caused by: io.netty.channel.ConnectTimeoutException: connection timed out after 10000 ms: ticketing-redis.xjgiaw.ng.0001.apn2.cache.amazonaws.com/10.0.155.48:6379
        at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe$1.run(AbstractNioChannel.java:263) ~[netty-transport-4.1.114.Final.jar!/:4.1.114.Final]
        at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final]
        at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:156) ~[netty-common-4.1.114.Final.jar!/:4.1.114.Final]
        ... 8 common frames omitted

Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/

 :: Spring Boot ::                (v3.3.5)

Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts
2026-03-19T06:02:32.762Z DEBUG 1 --- [           main] org.hibernate.SQL                        :
    alter table chat_messages
       modify column content TEXT not null

2. 컨테이너 상태 확인

이미지 태그를 보니 방금 push한 최신 이미지가 잘 가져와진 것을 확인할 수 있다.

sh-5.2$ sudo docker ps
CONTAINER ID   IMAGE                                                                                                      COMMAND               CREATEDSTATUS              PORTS                                       NAMES
70c4a26070ad   272206396540.dkr.ecr.ap-northeast-2.amazonaws.com/ticketing-app:b04f77a72a1df6b501f9abf6f636707ca02e7513   "java -jar app.jar"   14 minutes agoUp About a minute   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   ci-demo

상황 진단

url 파싱 문제는 해결되었으나, 6379 포트로 연결이 막혀 있는 상태

connection timed out after 10000 ms: 
ticketing-redis.xjgiaw.ng.0001.apn2.cache.amazonaws.com/10.0.155.48:6379

원인: ElastiCache 보안 그룹에 EC2 접근 허용 규칙이 없음

해결: ElastiCache에 연결된 보안 그룹의 인바운드 규칙에 다음을 추가:

소스는 자기 자신(sg-0dbd1943864cc0e0c / ticketing-app-ec2-sg)을 가리키도록 설정
-> 같은 SG에 속한 EC2가 ElastiCache의 6379 포트에 접근할 수 있게 하기 위함.

이후 절차

1. 컨테이너 재시작 후 로그 보기

sudo docker restart ci-demo
sudo docker logs ci-demo -f

>>  다시 서버 실행 실패

상황: RedissonAutoConfiguration은 자동 설정 클래스가 아니라서 exclude가 안 됨

더보기

Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/

 :: Spring Boot ::                (v3.3.5)

2026-03-19T06:22:19.879Z  WARN 1 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalStateException: The following classes could not be excluded because they are not auto-configuration classes:
        - org.redisson.spring.starter.RedissonAutoConfiguration

2026-03-19T06:22:19.960Z ERROR 1 --- [           main] o.s.boot.SpringApplication               : Application run failed

java.lang.IllegalStateException: The following classes could not be excluded because they are not auto-configuration classes:
        - org.redisson.spring.starter.RedissonAutoConfiguration

        at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector.handleInvalidExcludes(AutoConfigurationImportSelector.java:211) ~[spring-boot-autoconfigure-3.3.5.jar!/:3.3.5]
        at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector.checkExcludedClasses(AutoConfigurationImportSelector.java:197) ~[spring-boot-autoconfigure-3.3.5.jar!/:3.3.5]
        at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector.getAutoConfigurationEntry(AutoConfigurationImportSelector.java:129) ~[spring-boot-autoconfigure-3.3.5.jar!/:3.3.5]
        at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector$AutoConfigurationGroup.process(AutoConfigurationImportSelector.java:430) ~[spring-boot-autoconfigure-3.3.5.jar!/:3.3.5]
        at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGrouping.getImports(ConfigurationClassParser.java:813) ~[spring-context-6.1.14.jar!/:6.1.14]
        at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.processGroupImports(ConfigurationClassParser.java:743) ~[spring-context-6.1.14.jar!/:6.1.14]
        at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorHandler.process(ConfigurationClassParser.java:714) ~[spring-context-6.1.14.jar!/:6.1.14]
        at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:183) ~[spring-context-6.1.14.jar!/:6.1.14]
        at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:417) ~[spring-context-6.1.14.jar!/:6.1.14]
        at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:290) ~[spring-context-6.1.14.jar!/:6.1.14]
        at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349) ~[spring-context-6.1.14.jar!/:6.1.14]
        at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118) ~[spring-context-6.1.14.jar!/:6.1.14]
        at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:789) ~[spring-context-6.1.14.jar!/:6.1.14]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:607) ~[spring-context-6.1.14.jar!/:6.1.14]
        at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.5.jar!/:3.3.5]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.5.jar!/:3.3.5]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.5.jar!/:3.3.5]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.5.jar!/:3.3.5]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.5.jar!/:3.3.5]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.5.jar!/:3.3.5]
        at cohttp://m.example.ticketingproject.TicketingProjectApplication.main(TicketingProjectApplication.java:12) ~[!/:0.0.1-SNAPSHOT]
        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:569) ~[na:na]
        at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) ~[app.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) ~[app.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) ~[app.jar:0.0.1-SNAPSHOT]

해결: RedissonAutoConfigurationV2만 남기기.

수정 후 다시 main에 merge

결과: 동일

변명:

이랬다저랬다

결과: cd 실패

원인 분석: 이전 Instance Refresh가 아직 진행 중이라 새 Refresh를 시작할 수 없는 상황

조치: 모든 ec2 인스턴스 재부팅 후 워크플로우 re-run

결과: 방금과 동일

조치: 모든 인스턴스 종료(ASG에 의해 자동 시작)

결과:

더보기

Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/

 :: Spring Boot ::                (v3.3.5)

Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts
2026-03-19T12:26:53.200Z DEBUG 1 --- [           main] org.hibernate.SQL                        :
    alter table chat_messages
       modify column content TEXT not null
2026-03-19T12:26:58.312Z  WARN 1 --- [           main] .s.s.UserDetailsServiceAutoConfiguration :

Using generated security password: 18bfd4a7-5157-42d7-b214-b8c65b2c4411

This generated password is for development use only. Your security configuration must be updated before running your application in production.

2026-03-19T12:26:58.331Z  INFO 1 --- [           main] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager
2026-03-19T12:26:59.375Z DEBUG 1 --- [           main] o.s.s.web.DefaultSecurityFilterChain     : Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, LogoutFilter, JwtAuthenticationFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter
2026-03-19T12:27:01.182Z DEBUG 1 --- [           main] org.hibernate.SQL                        :
    select
        u1_0.id
    from
        users u1_0
    where
        u1_0.email=?
    limit
        ?
2026-03-19T12:27:01.185Z TRACE 1 --- [           main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (1:VARCHAR) <- [super@ticket-topia.com]
2026-03-19T12:27:01.186Z TRACE 1 --- [           main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (2:INTEGER) <- [1]
2026-03-19T12:27:01.465Z DEBUG 1 --- [           main] org.hibernate.SQL                        :
    insert
    into
        users
        (balance, created_at, deleted, deleted_at, email, modified_at, name, password, phone, user_role, user_status)
    values
        (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2026-03-19T12:27:01.471Z TRACE 1 --- [           main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (1:NUMERIC) <- [0]
2026-03-19T12:27:01.472Z TRACE 1 --- [           main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (2:TIMESTAMP) <- [2026-03-19T12:27:01.401488731]
2026-03-19T12:27:01.472Z TRACE 1 --- [           main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (3:BOOLEAN) <- [false]
2026-03-19T12:27:01.473Z TRACE 1 --- [           main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (4:TIMESTAMP) <- [null]
2026-03-19T12:27:01.474Z TRACE 1 --- [           main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (5:VARCHAR) <- [super@ticket-topia.com]
2026-03-19T12:27:01.474Z TRACE 1 --- [           main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (6:TIMESTAMP) <- [2026-03-19T12:27:01.401488731]
2026-03-19T12:27:01.475Z TRACE 1 --- [           main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (7:VARCHAR) <- [SUPER_ADMIN]
2026-03-19T12:27:01.475Z TRACE 1 --- [           main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (8:VARCHAR) <- [$2a$10$9hWBgFvAKFbjZHS/cd.27ew.D9XNmLURmJ5LtBMos5CBkV1R9.P/a]
2026-03-19T12:27:01.477Z TRACE 1 --- [           main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (9:VARCHAR) <- [010-0000-0000]
2026-03-19T12:27:01.477Z TRACE 1 --- [           main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (10:ENUM) <- [SUPER_ADMIN]
2026-03-19T12:27:01.479Z TRACE 1 --- [           main] org.hibernate.orhttp://m.jdbc.bind : binding parameter (11:ENUM) <- [ACTIVE]
2026-03-19T12:27:01.501Z  WARN 1 --- [           main] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 1265, SQLState: 01000
2026-03-19T12:27:01.502Z ERROR 1 --- [           main] o.h.engine.jdbc.spi.SqlExceptionHelper   : Data truncated for column 'user_role' at row 1
2026-03-19T12:27:01.553Z ERROR 1 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.orm.jpa.JpaSystemException: could not execute statement [Data truncated for column 'user_role' at row 1] [insert into users (balance,created_at,deleted,deleted_at,email,modified_at,name,password,phone,user_role,user_status) values (?,?,?,?,?,?,?,?,?,?,?)]
        at org.springframework.orhttp://m.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:341) ~[spring-orm-6.1.14.jar!/:6.1.14]
        at org.springframework.orhttp://m.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:241) ~[spring-orm-6.1.14.jar!/:6.1.14]
        at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550) ~[spring-orm-6.1.14.jar!/:6.1.14]
        at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-6.1.14.jar!/:6.1.14]
        at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:335) ~[spring-tx-6.1.14.jar!/:6.1.14]
        at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:160) ~[spring-tx-6.1.14.jar!/:6.1.14]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:165) ~[spring-data-jpa-3.3.5.jar!/:3.3.5]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at jdk.proxy2/jdk.proxy2.$Proxy178.save(Unknown Source) ~[na:na]
        at cohttp://m.example.ticketingproject.common.config.SuperAdminInitializer.run(SuperAdminInitializer.java:50) ~[!/:0.0.1-SNAPSHOT]
        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:569) ~[na:na]
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) ~[spring-tx-6.1.14.jar!/:6.1.14]
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-6.1.14.jar!/:6.1.14]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at cohttp://m.example.ticketingproject.common.config.SuperAdminInitializer$SpringCGLIB$0.run(<generated>) ~[!/:0.0.1-SNAPSHOT]
        at org.springframework.boot.SpringApplication.lambda$callRunner$4(SpringApplication.java:786) ~[spring-boot-3.3.5.jar!/:3.3.5]
        at org.springframework.util.function.ThrowingConsumer$1.acceptWithException(ThrowingConsumer.java:83) ~[spring-core-6.1.14.jar!/:6.1.14]
        at org.springframework.util.function.ThrowingConsumer.accept(ThrowingConsumer.java:60) ~[spring-core-6.1.14.jar!/:6.1.14]
        at org.springframework.util.function.ThrowingConsumer$1.accept(ThrowingConsumer.java:88) ~[spring-core-6.1.14.jar!/:6.1.14]
        at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:798) ~[spring-boot-3.3.5.jar!/:3.3.5]
        at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:786) ~[spring-boot-3.3.5.jar!/:3.3.5]
        at org.springframework.boot.SpringApplication.lambda$callRunners$3(SpringApplication.java:774) ~[spring-boot-3.3.5.jar!/:3.3.5]
        at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[na:na]
        at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357) ~[na:na]
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510) ~[na:na]
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na]
        at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[na:na]
        at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[na:na]
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
        at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[na:na]
        at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:774) ~[spring-boot-3.3.5.jar!/:3.3.5]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:342) ~[spring-boot-3.3.5.jar!/:3.3.5]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.5.jar!/:3.3.5]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.5.jar!/:3.3.5]
        at cohttp://m.example.ticketingproject.TicketingProjectApplication.main(TicketingProjectApplication.java:14) ~[!/:0.0.1-SNAPSHOT]
        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:569) ~[na:na]
        at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) ~[app.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) ~[app.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) ~[app.jar:0.0.1-SNAPSHOT]
Caused by: org.hibernate.exception.GenericJDBCException: could not execute statement [Data truncated for column 'user_role' at row 1] [insert into users (balance,created_at,deleted,deleted_at,email,modified_at,name,password,phone,user_role,user_status) values (?,?,?,?,?,?,?,?,?,?,?)]
        at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:63) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:197) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.id.insert.GetGeneratedKeysDelegate.performMutation(GetGeneratedKeysDelegate.java:116) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.engine.jdbc.mutation.internal.MutationExecutorSingleNonBatched.performNonBatchedOperations(MutationExecutorSingleNonBatched.java:47) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.engine.jdbc.mutation.internal.AbstractMutationExecutor.execute(AbstractMutationExecutor.java:55) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.persister.entity.mutation.InsertCoordinatorStandard.doStaticInserts(InsertCoordinatorStandard.java:194) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.persister.entity.mutation.InsertCoordinatorStandard.coordinateInsert(InsertCoordinatorStandard.java:132) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.persister.entity.mutation.InsertCoordinatorStandard.insert(InsertCoordinatorStandard.java:95) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:85) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:671) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:292) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:273) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:323) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:391) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:305) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:224) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:137) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:175) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.event.internal.DefaultPersistEventListener.persist(DefaultPersistEventListener.java:93) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:77) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:54) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:757) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:741) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        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:569) ~[na:na]
        at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:319) ~[spring-orm-6.1.14.jar!/:6.1.14]
        at jdk.proxy2/jdk.proxy2.$Proxy174.persist(Unknown Source) ~[na:na]
        at org.springframework.data.jpa.repository.support.SimpleJpaRepository.save(SimpleJpaRepository.java:628) ~[spring-data-jpa-3.3.5.jar!/:3.3.5]
        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:569) ~[na:na]
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at org.springframework.data.repository.core.support.RepositoryMethodInvoker$RepositoryFragmentMethodInvoker.lambda$new$0(RepositoryMethodInvoker.java:277) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
        at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:170) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
        at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:158) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
        at org.springframework.data.repository.core.support.RepositoryComposition$RepositoryFragments.invoke(RepositoryComposition.java:516) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
        at org.springframework.data.repository.core.support.RepositoryComposition.invoke(RepositoryComposition.java:285) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
        at org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor.invoke(RepositoryFactorySupport.java:628) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:173) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
        at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:148) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:70) ~[spring-data-commons-3.3.5.jar!/:3.3.5]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) ~[spring-tx-6.1.14.jar!/:6.1.14]
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-6.1.14.jar!/:6.1.14]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.1.14.jar!/:6.1.14]
        at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:138) ~[spring-tx-6.1.14.jar!/:6.1.14]
        ... 49 common frames omitted
Caused by: java.sql.SQLException: Data truncated for column 'user_role' at row 1
        at cohttp://m.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:130) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
        at cohttp://m.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
        at cohttp://m.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:912) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
        at cohttp://m.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1054) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
        at cohttp://m.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1003) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
        at cohttp://m.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1312) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
        at cohttp://m.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:988) ~[mysql-connector-j-8.3.0.jar!/:8.3.0]
        at cohttp://m.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61) ~[HikariCP-5.1.0.jar!/:na]
        at cohttp://m.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java) ~[HikariCP-5.1.0.jar!/:na]
        at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:194) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final]
        ... 99 common frames omitted

분석: Redis 문제는 해결됐고, DB 문제

Data truncated for column 'user_role' at row 1
binding parameter (10:ENUM) <- [SUPER_ADMIN]

원인: users 테이블의 user_role ENUM 컬럼에 SUPER_ADMIN 값이 정의되어 있지 않은 것이 원인
+ 현재 ddl-auto: update로 설정 -> 컬럼을 새로 추가하거나 수정하지 않음.

조치: RDS에서 직접 ENUM 컬럼 수정 필요.

방법: intelliJ에서 RDS 접속하여 아래 쿼리 전송

ALTER TABLE users 
MODIFY COLUMN user_role ENUM('USER', 'ADMIN', 'SUPER_ADMIN') NOT NULL;

결과

너도 오늘 수고 많았다.