powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Сериализация MBeanServerInvocationHandler при работе с JMX
5 сообщений из 5, страница 1 из 1
Сериализация MBeanServerInvocationHandler при работе с JMX
    #38093161
aby_2503
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим, есть два MBean'а: UserMBean и AccountMBean. У user есть сеттер - setAccountMBean. На клиенте я вытаскиваю два бина
Код: java
1.
2.
AccountMBean account = JMX.newMBeanProxy(mBeanServerConnection, objectName, AccountMBean.class, true);
UserMBean user = JMX.newMBeanProxy(mBeanServerConnection, objectName1, UserMBean.class, true);



Затем я вызываю
Код: java
1.
 user.setAccount(account);



Вылетает
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
java.lang.reflect.UndeclaredThrowableException
	at $Proxy1.setAccount(Unknown Source)
	at Main.main(Main.java:45)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.io.NotSerializableException: javax.management.MBeanServerInvocationHandler
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
	at java.rmi.MarshalledObject.<init>(MarshalledObject.java:118)
	at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.setAttribute(RMIConnector.java:955)
	at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:298)



Можно ли как-то обойти несериализуемость MBeanServerInvocationHandler?
...
Рейтинг: 0 / 0
Сериализация MBeanServerInvocationHandler при работе с JMX
    #38093217
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему вы решили что так можно делать.
У вас есть 2 прокси и выхотите одну их них передать удаленно как Value Object. Но ваша прокся не является Value Object о чем вам и сообщается.
...
Рейтинг: 0 / 0
Сериализация MBeanServerInvocationHandler при работе с JMX
    #38093234
aby_2503
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть, как вариант, можно просто на клиенте создавать копию(копировать все поля) одного из прокси, а затем вызывать сеттер с новым параметром. Я верно понимаю?
...
Рейтинг: 0 / 0
Сериализация MBeanServerInvocationHandler при работе с JMX
    #38093246
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aby_2503То есть, как вариант, можно просто на клиенте создавать копию(копировать все поля)
Свойства, а не поля.

aby_2503одного из прокси, а затем вызывать сеттер с новым параметром. Я верно понимаю?
А что вы вообще делаете? Вы JMX точно по назначению используете?
Суть проиходящего не очень понятна. Почему бы не вычитать из сервера сразу Value Object, если он нужен.
Почему бы вообще всё не реализовать на сервере, потому что в указаном коде, клиент, в принципе, лишнее звено.
Должно быть что-то типа:
Код: java
1.
account.setUserByName(objectName1);
...
Рейтинг: 0 / 0
Сериализация MBeanServerInvocationHandler при работе с JMX
    #38093303
aby_2503
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, за совет!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Сериализация MBeanServerInvocationHandler при работе с JMX
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]