diff --git a/meeting/logs/meeting-service.log b/meeting/logs/meeting-service.log index 53af59f..daa8059 100644 --- a/meeting/logs/meeting-service.log +++ b/meeting/logs/meeting-service.log @@ -2049,3 +2049,602 @@ Caused by: io.lettuce.core.RedisReadOnlyException: READONLY You can't write agai ... 1 common frames omitted 2025-10-27 14:10:43 [http-nio-8082-exec-5] INFO c.u.h.m.i.c.MinutesController - 회의록 상세 조회 성공 (Mock) - minutesId: 1 2025-10-27 14:10:43 [http-nio-8082-exec-5] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.getMinutesDetail 완료 - 실행시간: 254ms +2025-10-27 14:26:07 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 61997 (/Users/adela/home/workspace/recent/HGZero/meeting/build/classes/java/main started by adela in /Users/adela/home/workspace/recent/HGZero/meeting) +2025-10-27 14:26:07 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 +2025-10-27 14:26:07 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev" +2025-10-27 14:26:08 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-27 14:26:08 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-27 14:26:08 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 87 ms. Found 8 JPA repository interfaces. +2025-10-27 14:26:08 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-27 14:26:08 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-10-27 14:26:08 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingAnalysisJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-27 14:26:08 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-27 14:26:08 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingParticipantJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-27 14:26:08 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-27 14:26:08 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesSectionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-27 14:26:08 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.SessionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-27 14:26:08 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TemplateJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-27 14:26:08 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TodoJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-27 14:26:08 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 15 ms. Found 0 Redis repository interfaces. +2025-10-27 14:26:08 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8082 (http) +2025-10-27 14:26:08 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-27 14:26:08 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] +2025-10-27 14:26:08 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-27 14:26:08 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1477 ms +2025-10-27 14:26:09 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-27 14:26:09 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final +2025-10-27 14:26:09 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@771afdd5 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@771afdd5 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@771afdd5 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@3abadb65 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@3abadb65 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@7131d668 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@7131d668 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@46a97805 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@46a97805 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@667dd150 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@667dd150 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@667dd150 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@af04f09 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@af04f09 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@af04f09 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@758d4aa9 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@758d4aa9 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@78e97d4d +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@7096d451 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@7096d451 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@7816454d +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@67d180e4 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@54e18a46 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@54e18a46 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@54e18a46 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@1293f8d7 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@1293f8d7 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@1293f8d7 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@58e5fbe5 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@58e5fbe5 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@58e5fbe5 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@335896bd +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@335896bd +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@335896bd +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@6b33892a +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@6b33892a +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@6b33892a +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@666b91db +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@666b91db +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@11a67420 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@11a67420 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@663cf5d7 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@663cf5d7 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@663cf5d7 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@11b14ae3 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@2b6ee447 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@2b6ee447 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@9cb927e +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@8585cdd +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@8585cdd +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@8585cdd +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@1325f967 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@4f356b98 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@1ab85862 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@504c415c +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@504c415c +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@6c9e74f3 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@6c9e74f3 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@813ab53 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@5030997b +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@62c47480 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@7de2bdc7 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@683ed81b +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@3c116f26 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@7db06c50 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@7db06c50 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@1554eaa4 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@1554eaa4 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@b340615 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@b340615 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@3c6b300a +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@3c6b300a +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@4247093b +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@4247093b +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@7074da1d +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@5bdb6ea8 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@3e55eeb9 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@3e55eeb9 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@44a13699 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@1253b822 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@127d2aee +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@3cc2e3e +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@3cc2e3e +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@4e14d520 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@4189e668 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@3a589eed +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@3a589eed +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@5807ea46 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@5807ea46 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@305289b3 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@305289b3 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@305289b3 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@3ee68377 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@3ee68377 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@3ee68377 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@4037cdb0 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@27055a2a +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@33e4068 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@33e4068 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@9499643 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@9499643 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@9499643 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@776d8097 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@7a34505a +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@b787274 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@b787274 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@4ec616d6 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@4ec616d6 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@4ec616d6 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@55b45ea1 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@55b45ea1 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@d5a72cd +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@d5a72cd +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@45f95ac0 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@45f95ac0 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@3b77940f +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@3b77940f +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@4c418496 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@4c418496 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@12d35bc9 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@1df32c09 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@637d111d +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@637d111d +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@2a21cbe7 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@3bb4c2b2 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@1acc768 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@25765a49 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@38caad07 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@15d0b458 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@72a0a60d +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@65930e02 +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@85c3522 +2025-10-27 14:26:09 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2025-10-27 14:26:09 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-10-27 14:26:09 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@5186b78a +2025-10-27 14:26:09 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-10-27 14:26:09 [main] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) +2025-10-27 14:26:09 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@448fa659) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@45c28c49) +2025-10-27 14:26:09 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@7c6fc278) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@23ee92df) +2025-10-27 14:26:09 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) +2025-10-27 14:26:09 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@3f78a5ed +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@3f78a5ed +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@637d111d` +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-27 14:26:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-27 14:26:09 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@49770ef9] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@15bcecf9] +2025-10-27 14:26:10 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2025-10-27 14:26:10 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@49770ef9] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@440d45c5] +2025-10-27 14:26:10 [main] DEBUG org.hibernate.SQL - + alter table if exists meeting_analysis + alter column agenda_analyses set data type TEXT +2025-10-27 14:26:10 [main] DEBUG org.hibernate.SQL - + alter table if exists meetings + alter column description set data type TEXT +2025-10-27 14:26:10 [main] DEBUG org.hibernate.SQL - + alter table if exists minutes_sections + alter column content set data type TEXT +2025-10-27 14:26:10 [main] DEBUG org.hibernate.SQL - + alter table if exists templates + alter column description set data type TEXT +2025-10-27 14:26:10 [main] DEBUG org.hibernate.SQL - + alter table if exists templates + alter column sections set data type TEXT +2025-10-27 14:26:10 [main] DEBUG org.hibernate.SQL - + alter table if exists todos + alter column description set data type TEXT +2025-10-27 14:26:10 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@440d45c5] for TypeConfiguration +2025-10-27 14:26:10 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-27 14:26:10 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. +2025-10-27 14:26:11 [main] INFO c.u.h.m.infra.config.RedisConfig - Redis Lettuce Client 설정 완료 - Standalone 모드 (Master-Replica 자동 탐색 비활성화) +2025-10-27 14:26:11 [main] INFO c.u.h.m.infra.config.RedisConfig - LettuceConnectionFactory 설정 완료 - Host: 20.249.177.114:6379, Database: 1 +2025-10-27 14:26:11 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library +2025-10-27 14:26:11 [main] INFO c.u.h.m.infra.config.RedisConfig - RedisTemplate 설정 완료 +2025-10-27 14:26:11 [main] INFO c.u.h.m.infra.cache.CacheConfig - ObjectMapper 설정 완료 +2025-10-27 14:26:11 [main] INFO c.u.h.m.infra.config.EventHubConfig - Initializing Azure EventHub configuration with hub name: hgzero-eventhub-name +2025-10-27 14:26:11 [main] INFO c.u.h.m.infra.config.EventHubConfig - Creating EventHub producer for hub: hgzero-eventhub-name +2025-10-27 14:26:11 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_34d98e_1761542771420"} +2025-10-27 14:26:11 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-27 14:26:11 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2025-10-27 14:26:11 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 06ee4ea9-5fa3-40c3-beba-c9f756317c36 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-27 14:26:11 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2025-10-27 14:26:11 [main] INFO c.u.h.m.infra.config.WebSocketConfig - WebSocket 핸들러 등록 완료 - endpoint: /ws/minutes/{minutesId} +2025-10-27 14:26:11 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2025-10-27 14:26:12 [main] DEBUG o.s.s.web.DefaultSecurityFilterChain - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, JwtAuthenticationFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter +2025-10-27 14:26:12 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) +2025-10-27 14:26:12 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8082 (http) with context path '/' +2025-10-27 14:26:12 [main] INFO c.u.h.meeting.MeetingApplication - Started MeetingApplication in 5.307 seconds (process running for 5.642) +2025-10-27 14:32:54 [http-nio-8082-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-10-27 14:32:54 [http-nio-8082-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-10-27 14:32:54 [http-nio-8082-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 5 ms +2025-10-27 14:32:54 [http-nio-8082-exec-1] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/index.html +2025-10-27 14:32:54 [http-nio-8082-exec-1] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext +2025-10-27 14:32:54 [http-nio-8082-exec-1] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/index.html +2025-10-27 14:32:54 [http-nio-8082-exec-3] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/index.css +2025-10-27 14:32:54 [http-nio-8082-exec-5] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/swagger-ui-standalone-preset.js +2025-10-27 14:32:54 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/swagger-ui.css +2025-10-27 14:32:54 [http-nio-8082-exec-3] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext +2025-10-27 14:32:54 [http-nio-8082-exec-5] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext +2025-10-27 14:32:54 [http-nio-8082-exec-2] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext +2025-10-27 14:32:54 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/swagger-ui.css +2025-10-27 14:32:54 [http-nio-8082-exec-5] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/swagger-ui-standalone-preset.js +2025-10-27 14:32:54 [http-nio-8082-exec-4] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/swagger-ui-bundle.js +2025-10-27 14:32:54 [http-nio-8082-exec-3] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/index.css +2025-10-27 14:32:54 [http-nio-8082-exec-6] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/swagger-initializer.js +2025-10-27 14:32:54 [http-nio-8082-exec-4] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext +2025-10-27 14:32:54 [http-nio-8082-exec-4] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/swagger-ui-bundle.js +2025-10-27 14:32:54 [http-nio-8082-exec-6] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext +2025-10-27 14:32:54 [http-nio-8082-exec-6] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/swagger-initializer.js +2025-10-27 14:32:54 [http-nio-8082-exec-8] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/favicon-32x32.png +2025-10-27 14:32:54 [http-nio-8082-exec-7] DEBUG o.s.security.web.FilterChainProxy - Securing GET /v3/api-docs/swagger-config +2025-10-27 14:32:54 [http-nio-8082-exec-8] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext +2025-10-27 14:32:54 [http-nio-8082-exec-7] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext +2025-10-27 14:32:54 [http-nio-8082-exec-8] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/favicon-32x32.png +2025-10-27 14:32:54 [http-nio-8082-exec-7] DEBUG o.s.security.web.FilterChainProxy - Secured GET /v3/api-docs/swagger-config +2025-10-27 14:32:54 [http-nio-8082-exec-7] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] org.springdoc.webmvc.ui.SwaggerConfigResource.openapiJson 호출 - 파라미터: [SecurityContextHolderAwareRequestWrapper[ org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterRequest@23a3b25b]] +2025-10-27 14:32:54 [http-nio-8082-exec-7] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] org.springdoc.webmvc.ui.SwaggerConfigResource.openapiJson 완료 - 실행시간: 0ms +2025-10-27 14:32:54 [http-nio-8082-exec-9] DEBUG o.s.security.web.FilterChainProxy - Securing GET /v3/api-docs +2025-10-27 14:32:54 [http-nio-8082-exec-9] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext +2025-10-27 14:32:54 [http-nio-8082-exec-9] DEBUG o.s.security.web.FilterChainProxy - Secured GET /v3/api-docs +2025-10-27 14:32:54 [http-nio-8082-exec-9] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] org.springdoc.webmvc.api.OpenApiWebMvcResource.openapiJson 호출 - 파라미터: [SecurityContextHolderAwareRequestWrapper[ org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterRequest@127bdf91], /v3/api-docs, ko_KR] +2025-10-27 14:32:54 [http-nio-8082-exec-9] INFO o.s.api.AbstractOpenApiResource - Init duration for springdoc-openapi is: 470 ms +2025-10-27 14:32:54 [http-nio-8082-exec-9] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] org.springdoc.webmvc.api.OpenApiWebMvcResource.openapiJson 완료 - 실행시간: 480ms +2025-10-27 14:33:31 [http-nio-8082-exec-4] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/1/invite +2025-10-27 14:33:31 [http-nio-8082-exec-4] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: 1 (1) +2025-10-27 14:33:31 [http-nio-8082-exec-4] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/1/invite +2025-10-27 14:33:31 [http-nio-8082-exec-4] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.inviteParticipant 호출 - 파라미터: [1, 1, 1, 1, com.unicorn.hgzero.meeting.infra.dto.request.InviteParticipantRequest@4271bd62] +2025-10-27 14:33:31 [http-nio-8082-exec-4] INFO c.u.h.m.i.c.MeetingController - 참석자 초대 요청 - meetingId: 1, email: newparticipant@example.com, inviter: 1 +2025-10-27 14:33:31 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@5186b78a (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-27 14:33:31 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@577e2617 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-27 14:33:31 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@1446fe7f (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-27 14:33:31 [http-nio-8082-exec-4] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@47a36c38 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. +2025-10-27 14:33:31 [http-nio-8082-exec-4] INFO c.u.h.m.biz.service.MeetingService - Inviting participant to meeting: 1, email: newparticipant@example.com +2025-10-27 14:33:31 [http-nio-8082-exec-4] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-27 14:33:31 [http-nio-8082-exec-4] ERROR c.u.hgzero.common.aop.LoggingAspect - [Service] com.unicorn.hgzero.meeting.biz.service.MeetingService.inviteParticipant 실패 - 실행시간: 34ms, 에러: 요청한 리소스를 찾을 수 없습니다. +2025-10-27 14:33:31 [http-nio-8082-exec-4] ERROR c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.inviteParticipant 실패 - 실행시간: 63ms, 에러: 요청한 리소스를 찾을 수 없습니다. +2025-10-27 14:33:31 [http-nio-8082-exec-4] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: com.unicorn.hgzero.common.exception.BusinessException: 요청한 리소스를 찾을 수 없습니다.] with root cause +com.unicorn.hgzero.common.exception.BusinessException: 요청한 리소스를 찾을 수 없습니다. + at com.unicorn.hgzero.meeting.biz.service.MeetingService.lambda$inviteParticipant$8(MeetingService.java:529) + at java.base/java.util.Optional.orElseThrow(Optional.java:403) + at com.unicorn.hgzero.meeting.biz.service.MeetingService.inviteParticipant(MeetingService.java:529) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) + at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) + at com.unicorn.hgzero.common.aop.LoggingAspect.logService(LoggingAspect.java:86) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) + at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.meeting.biz.service.MeetingService$$SpringCGLIB$$0.inviteParticipant() + at com.unicorn.hgzero.meeting.infra.controller.MeetingController.inviteParticipant(MeetingController.java:380) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) + at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) + at com.unicorn.hgzero.common.aop.LoggingAspect.logController(LoggingAspect.java:56) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) + at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) + at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.meeting.infra.controller.MeetingController$$SpringCGLIB$$0.inviteParticipant() + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) + at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) + at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) + at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) + at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) + at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) + at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) + at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at com.unicorn.hgzero.meeting.infra.config.jwt.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:60) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) + at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) + at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) + at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) + at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) + at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) + at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) + at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) + at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) + at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:113) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) + 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:483) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) + 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:344) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) + at java.base/java.lang.Thread.run(Thread.java:1583) +2025-10-27 14:33:31 [http-nio-8082-exec-4] DEBUG o.s.security.web.FilterChainProxy - Securing POST /error +2025-10-27 14:33:31 [http-nio-8082-exec-4] DEBUG o.s.security.web.FilterChainProxy - Secured POST /error +2025-10-27 14:33:31 [http-nio-8082-exec-4] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext +2025-10-27 14:34:14 [http-nio-8082-exec-6] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/meeting-scheduled-2/invite +2025-10-27 14:34:14 [http-nio-8082-exec-6] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: 1 (user-001) +2025-10-27 14:34:14 [http-nio-8082-exec-6] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/meeting-scheduled-2/invite +2025-10-27 14:34:14 [http-nio-8082-exec-6] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.inviteParticipant 호출 - 파라미터: [meeting-scheduled-2, user-001, 1, test@naver.com, com.unicorn.hgzero.meeting.infra.dto.request.InviteParticipantRequest@50450450] +2025-10-27 14:34:14 [http-nio-8082-exec-6] INFO c.u.h.m.i.c.MeetingController - 참석자 초대 요청 - meetingId: meeting-scheduled-2, email: newparticipant@example.com, inviter: 1 +2025-10-27 14:34:14 [http-nio-8082-exec-6] INFO c.u.h.m.biz.service.MeetingService - Inviting participant to meeting: meeting-scheduled-2, email: newparticipant@example.com +2025-10-27 14:34:14 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + select + me1_0.meeting_id, + me1_0.created_at, + me1_0.description, + me1_0.end_time, + me1_0.ended_at, + me1_0.location, + me1_0.organizer_id, + me1_0.purpose, + me1_0.scheduled_at, + me1_0.started_at, + me1_0.status, + me1_0.template_id, + me1_0.title, + me1_0.updated_at + from + meetings me1_0 + where + me1_0.meeting_id=? +2025-10-27 14:34:14 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + select + p1_0.meeting_id, + p1_0.user_id, + p1_0.attended, + p1_0.created_at, + p1_0.invitation_status, + p1_0.updated_at + from + meeting_participants p1_0 + where + p1_0.meeting_id=? +2025-10-27 14:34:14 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? +2025-10-27 14:34:14 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.user_id, + mpe1_0.meeting_id + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? + and mpe1_0.user_id=? + fetch + first ? rows only +2025-10-27 14:34:14 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* */ select + mpe1_0.user_id, + mpe1_0.meeting_id + from + meeting_participants mpe1_0 + where + mpe1_0.meeting_id=? + and mpe1_0.user_id=? + fetch + first ? rows only +2025-10-27 14:34:14 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + select + mpe1_0.meeting_id, + mpe1_0.user_id, + mpe1_0.attended, + mpe1_0.created_at, + mpe1_0.invitation_status, + mpe1_0.updated_at + from + meeting_participants mpe1_0 + where + ( + mpe1_0.meeting_id, mpe1_0.user_id + ) in ((?, ?)) +2025-10-27 14:34:14 [http-nio-8082-exec-6] DEBUG c.u.h.m.i.gateway.ParticipantGateway - Participant saved: meetingId=meeting-scheduled-2, userId=newparticipant@example.com +2025-10-27 14:34:14 [http-nio-8082-exec-6] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_34d98e_1761542771420","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-27 14:34:14 [http-nio-8082-exec-6] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_34d98e_1761542771420"} +2025-10-27 14:34:14 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_34d98e_1761542771420","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-27 14:34:14 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_34d98e_1761542771420"} +2025-10-27 14:34:14 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_34d98e_1761542771420","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-27 14:34:14 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_34d98e_1761542771420","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-27 14:34:15 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_34d98e_1761542771420","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"6c4c92961f134ddb882f6c5f06d24cff_G0"} +2025-10-27 14:34:15 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-27 14:34:15 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_34d98e_1761542771420","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-27 14:34:15 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_34d98e_1761542771420"} +2025-10-27 14:34:15 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_34d98e_1761542771420","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-27 14:34:15 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_34d98e_1761542771420","entityPath":"$cbs","linkName":"cbs"} +2025-10-27 14:34:15 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_34d98e_1761542771420","entityPath":"$cbs"} +2025-10-27 14:34:15 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_34d98e_1761542771420","entityPath":"$cbs","subscriberId":"un_cb1075_1761543255212"} +2025-10-27 14:34:15 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_34d98e_1761542771420","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-27 14:34:15 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_34d98e_1761542771420","entityPath":"$cbs"} +2025-10-27 14:34:15 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_34d98e_1761542771420","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-27 14:34:15 [reactor-executor-1] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} +2025-10-27 14:34:15 [reactor-executor-1] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_34d98e_1761542771420","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} +2025-10-27 14:34:15 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_34d98e_1761542771420","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name","remoteTarget":"Target{address='hgzero-eventhub-name', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-27 14:34:15 [http-nio-8082-exec-6] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=notification, type=NOTIFICATION_REQUEST, partitionKey=newparticipant@example.com +2025-10-27 14:34:15 [http-nio-8082-exec-6] INFO c.u.h.m.biz.service.MeetingService - Meeting invitation event published for email: newparticipant@example.com, meetingId: meeting-scheduled-2 +2025-10-27 14:34:15 [http-nio-8082-exec-6] INFO c.u.h.m.biz.service.MeetingService - Participant invited successfully: newparticipant@example.com to meeting meeting-scheduled-2 +2025-10-27 14:34:15 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingParticipantEntity */insert + into + meeting_participants (attended, created_at, invitation_status, updated_at, meeting_id, user_id) + values + (?, ?, ?, ?, ?, ?) +2025-10-27 14:34:15 [http-nio-8082-exec-6] INFO c.u.h.m.i.c.MeetingController - 참석자 초대 완료 - meetingId: meeting-scheduled-2, email: newparticipant@example.com +2025-10-27 14:34:15 [http-nio-8082-exec-6] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.inviteParticipant 완료 - 실행시간: 638ms diff --git a/meeting/src/main/java/com/unicorn/hgzero/meeting/biz/service/MeetingService.java b/meeting/src/main/java/com/unicorn/hgzero/meeting/biz/service/MeetingService.java index 9b17301..7bca9bb 100644 --- a/meeting/src/main/java/com/unicorn/hgzero/meeting/biz/service/MeetingService.java +++ b/meeting/src/main/java/com/unicorn/hgzero/meeting/biz/service/MeetingService.java @@ -18,6 +18,7 @@ import com.unicorn.hgzero.meeting.biz.usecase.out.SessionReader; import com.unicorn.hgzero.meeting.biz.usecase.out.SessionWriter; import com.unicorn.hgzero.meeting.infra.cache.CacheService; import com.unicorn.hgzero.meeting.infra.event.dto.MeetingStartedEvent; +import com.unicorn.hgzero.meeting.infra.event.dto.NotificationRequestEvent; import com.unicorn.hgzero.meeting.infra.event.publisher.EventPublisher; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -541,12 +542,31 @@ public class MeetingService implements // 참석자 저장 participantWriter.saveParticipant(command.meetingId(), command.email()); - // TODO: 실제 이메일 발송 구현 필요 - // 이메일 발송 서비스 호출 - // emailService.sendInvitation(command.email(), meeting, command.frontendUrl()); - // 현재는 로그만 남기고 성공으로 처리 - log.info("Invitation email would be sent to {} for meeting {} (Frontend URL: {})", - command.email(), meeting.getTitle(), command.frontendUrl()); + // 회의 초대 알림 이벤트 발행 + try { + NotificationRequestEvent event = NotificationRequestEvent.builder() + .notificationType("MEETING_INVITATION") + .recipientEmail(command.email()) + .recipientId(command.email()) + .recipientName(command.email()) + .title("회의 초대") + .message(String.format("'%s' 회의에 초대되었습니다. 일시: %s, 장소: %s, 참여 링크: %s", + meeting.getTitle(), meeting.getScheduledAt(), meeting.getLocation(), command.frontendUrl())) + .relatedEntityId(command.meetingId()) + .relatedEntityType("MEETING") + .requestedBy(meeting.getOrganizerId()) + .requestedByName(command.inviterName()) + .eventTime(LocalDateTime.now()) + .build(); + + eventPublisher.publishNotificationRequest(event); + log.info("Meeting invitation event published for email: {}, meetingId: {}", + command.email(), command.meetingId()); + } catch (Exception e) { + log.error("Failed to publish meeting invitation event: meetingId={}, email={}", + command.meetingId(), command.email(), e); + // 이벤트 발행 실패는 비즈니스 로직에 영향을 주지 않으므로 계속 진행 + } log.info("Participant invited successfully: {} to meeting {}", command.email(), command.meetingId()); }