Я хотел бы вызвать ejb3 во время выполнения. Имя ejb и имя метода будут доступны только во время выполнения, поэтому я не могу включать удаленные интерфейсы во время компиляции.
String bean = 'some/Bean';
String meth = 'doStuff';
//lookup the bean
Object remoteInterface = (Object) new InitialContext().lookup(bean);
//search the method ..
// foreach (methods)
// if method == meth, method.invoke(bean);
компоненты должны быть распределены по нескольким серверам приложений, а все компоненты должны вызываться удаленно.
Есть намеки? конкретно я делаю не хочу:
- Внедрение зависимости
- включение специфических для приложения интерфейсов ejb в диспетчере (см. Выше)
- веб-сервисы, которые напрасно расходуют вычислительную мощность, вся эта хрень xml
Можно ли загрузить удаленный интерфейс ejb3 по сети (если да, то как?), Чтобы я мог кэшировать интерфейс в какой-то хэш-карте или чем-то в этом роде.
У меня есть решение с компонентом удаленного диспетчера, которое я могу включить в вышеупомянутый главный диспетчер, который по сути делает то же самое, но просто передает вызов локальному ejb (который я могу посмотреть, как происходит сбой именования). Учитывая компонент удаленного диспетчера, я могу использовать внедрение зависимостей.
спасибо за любую помощь
(кстати, нетбобы и стеклянная рыба)