Я получаю предупреждение от JConsole, которое отображается каждый раз, когда мое приложение отправляет уведомление на зарегистрированный сервер Spring MBean.
Я использую JMX в Spring 3.0.Я зарегистрировал свой класс ServiceImpl как сервер MBean.Вот моя конфигурация
<!-- MBean Server Factory -->
<bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean">
<property name="locateExistingServerIfPossible" value="true"></property>
<property name="agentId" value="MMAC-056_1306399012572"></property>
</bean>
<!-- this bean must not be lazily initialized if the exporting is to happen -->
<bean id="exporter"
class="org.springframework.jmx.export.MBeanExporter" lazy-init="false">
<property name="beans">
<map>
<entry key="bean:name=searchCampaignService" value-ref="campaignService" />
</map>
</property>
<property name="server" ref="mbeanServer"></property>
<property name="autodetect" value="true"></property>
<property name="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING" />
<property name="assembler">
<bean class="org.springframework.jmx.export.assembler
.MethodNameBasedMBeanInfoAssembler">
<property name="managedMethods">
<value>searchCampaignById</value>
</property>
</bean>
</property>
<property name="notificationListenerMappings">
<map>
<entry key="bean:name=searchCampaignService">
<bean class="com....TestLoggingNotificationHandler" />
</entry>
</map>
</property>
</bean>
Мой класс serviceimpl реализует интерфейс NotificationPublisherAware, и я отправляю уведомление от одного из моих методов обслуживания, который отображается как управляемый метод.Сначала я хочу проверить уведомление локально.
Я также вижу JConsole, отображающую компонент с узлами операций и уведомлений.Я подписываюсь на уведомление и запускаю клиентское приложение.Как только я запускаю свое клиентское приложение, JConsole отображает предупреждение о том, что
May 26, 2011 4:53:41 AM ClientNotifForwarder NotifFetcher.fetchOneNotif
WARNING: Failed to deserialize a notification: java.io.NotSerializableException:
org.springframework.jmx.export.notification.ModelMBeanNotificationPublisher
я сделал свой service & UserDataObject как сериализуемый .. Я также попытался передать строку в
notification.setUserData("Test notification"+ctr);
, но все ещеJConsole продолжает отображать предупреждение.