gpt4 book ai didi

java - 取消部署 WebLogic 应用程序时自动取消注册 MBean(由 Spring 注册)

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:50:41 25 4
gpt4 key购买 nike

在我的 Spring 应用程序(部署在 WebLogic 服务器上)中,我有以下 Spring bean 定义:

<context:mbean-server />

<bean id="mbeanExporter" class="org.springframework.jmx.export.MBeanExporter">
<property name="beans">
<map>
<entry key="SpringBeans:name=hibernateStatisticsMBean,subsystem=${subsystem}" value-ref="hibernateStatisticsMBean" />
</map>
</property>
</bean>

<bean name="hibernateStatisticsMBean" class="org.hibernate.jmx.StatisticsService">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

它在部署应用程序时注册新的 MBean 并完美运行。但是,当我取消部署应用程序并再次部署它时,它会提示 MBean 已经存在。

如何在应用程序取消部署期间自动取消注册 MBean?可以通过 Spring 完成还是我需要为此做一些 WebLogic 魔术?

最佳答案

添加以下属性:

<property name="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING"/>

这样你的 mBeanExporter 看起来像:

<bean id="mbeanExporter" class="org.springframework.jmx.export.MBeanExporter">
<property name="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING"/>
<property name="beans">
<map>
<entry key="SpringBeans:name=hibernateStatisticsMBean,subsystem=${subsystem}" value-ref="hibernateStatisticsMBean" />
</map>
</property>
</bean>

关于java - 取消部署 WebLogic 应用程序时自动取消注册 MBean(由 Spring 注册),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5420737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com