ejb jndi lookup выдает ClassCastException только при вызове из IBM Message Broker

Когда я пытаюсь выполнить поиск удаленного ejb jndi, брокер сообщений IBM создает исключение ClassCast для объекта factory. Но тот же код отлично работает для обычного локального приложения Java и junit. Почему эта проблема возникает при вызове только из IBM WMB

Context context = new InitialContext(ejbJndiProperties);
Object factoryObj = context.lookup("SampleBeanTAFJ/remote");
return (SampleBeanRemote) factoryObj;

person user2978920    schedule 03.12.2013    source источник


Ответы (1)


Это часто вызывается путем загрузки частей интерфейса в другой загрузчик классов в классы реализации.

Я бы использовал env var:

IBM_JAVA_OPTIONS=-Dibm.cl.verbose=*

Затем перезапустите брокера, это приведет к сбросу трассировки загрузки классов в stdout / console.txt, что может дать вам некоторые подсказки.

Какие именно классы связаны с ошибкой и в каких банках они хранятся? Развернуто в EG или на него ссылаются через SHARED-CLASSES? Точные детали определяют, какие загрузчики классов должны использоваться здесь.

person Dave    schedule 03.12.2013
comment
Я развернул свой поток сообщений в EG. Я получаю экземпляр класса StatelessRemoteProxy, который я пытаюсь передать моему удаленному классу. - person user2978920; 03.12.2013
comment
Какой конкретно класс он не может найти, в какой банке он содержится и где находится эта банка? - person Dave; 04.12.2013