Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Сериализация MBeanServerInvocationHandler при работе с JMX / 5 сообщений из 5, страница 1 из 1
26.12.2012, 12:03:47
    #38093161
aby_2503
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сериализация MBeanServerInvocationHandler при работе с JMX
Допустим, есть два 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
26.12.2012, 12:36:48
    #38093217
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сериализация MBeanServerInvocationHandler при работе с JMX
А почему вы решили что так можно делать.
У вас есть 2 прокси и выхотите одну их них передать удаленно как Value Object. Но ваша прокся не является Value Object о чем вам и сообщается.
...
Рейтинг: 0 / 0
26.12.2012, 12:47:49
    #38093234
aby_2503
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сериализация MBeanServerInvocationHandler при работе с JMX
То есть, как вариант, можно просто на клиенте создавать копию(копировать все поля) одного из прокси, а затем вызывать сеттер с новым параметром. Я верно понимаю?
...
Рейтинг: 0 / 0
26.12.2012, 12:53:00
    #38093246
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сериализация MBeanServerInvocationHandler при работе с JMX
aby_2503То есть, как вариант, можно просто на клиенте создавать копию(копировать все поля)
Свойства, а не поля.

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


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