Как избежать ClassCastException в вызовах JMX со сложными аргументами на сервере приложений Websphere - PullRequest
1 голос
/ 01 апреля 2010

Мы используем JMX для связи между различными EAR на одном сервере приложений Websphere (6.1). Все работает хорошо, если мы используем только Java-типы в качестве аргументов, но если мы используем наши собственные классы в качестве аргументов, проблема в том, что мы получаем ClassCastExceptions на стороне получателя. Это, очевидно, проблема загрузчика классов: если jar с типами аргументов помещается в одобренный каталог JRE, так что все загрузчики классов используют точно один и тот же класс, исключения исчезают. Но мы бы предпочли поместить библиотеку, определяющую типы аргументов, в сам EAR.

Теперь мой вопрос: есть ли хитрость, чтобы убедить WAS сериализовать и десериализовать аргументы во время вызова JMX, я думаю, в этом случае исключение ClassCastException исчезнет.

1 Ответ

0 голосов
/ 01 апреля 2010

Вы правы, что это проблема загрузчика классов, и что передача сериализованных объектов в качестве аргументов вызова JMX может обойти проблему. Но вы можете заплатить значительный штраф за производительность. Сериализация / десериализация объектов не из дешевых.

...