에러 창고
[에러] javax.management.InstanceAlreadyExistsException: MXBean already registered with name org.apache.commons.pool2:type=GenericObjectPool, name=pool
JayEsEichi
2024. 3. 27. 15:02
728x90
반응형
SMALL
[Reason]
Redis 를 사용하면서 Redis 클라이언트와 소통하기 위해 Jedis를 사용하고자 했고, Configuration을 설정하고 연결한 Jedis를 Bean 객체로 만들어주도록 했다.
이 후 프로그램을 실행 시 위와 같은 에러가 발생하였다.
기본적으로 Spring은 실행하자마자 Bean으로 설정된 모든 객체를 MBean으로 우선 등록하는데, 이에 JedisPool을 MBean으로 등록하고, 이후에 JedisPool의 커넥션으로 설정한 뒤 pool이라는 이름으로 초기화되어 반환하게 되는데 이 때 이미 MBean으로 등록된 JedisPool 객체가 커넥션을 수립 후 반환되어 다시 MBean으로 등록되고자 하여 중복된 MBean이 발생되었다는 에러가 나타난 것이다.
[Solution]
(1)
application.properties 파일에 Bean 객체들을 MBean 으로 한 번 더 등록하는 설정을 off 해주는 옵션을 넣어준다.
(2)
그 다음, 인텔리제이의 Run 탭의 Edit Configurations를 클릭하고, 위 이미지에서는 가려져서 보이지 않지만 Build and run 제목의 오른쪽 부분에 있는 Modify options를 눌러 Disable JMX endpoints 옵션을 활성화시켜주고 apply해준다.
728x90
반응형
LIST