2016-10-12 5 views
0

Рекомендуемый способ вызова метода EJB локального интерфейса, чтобы выполнить поиск:Кэширование JNDI Lookup

<code> 
Context ic = new IntialContext(); 
ic.lookup(objectJndiName); 
</code> 

Однако я просмотреть полную JNDI дерево в начале применения и в конце концов я могу создать карта всех объектов с:

<code> 
    Map <String,Object> 
</code> 

с ключом ObjectName и объект требуемой реализации интерфейса. Я просматриваю объект с помощью ключа и вызывается требуемый метод на интерфейсе вроде этого:

method.invoke(bean, args); 

Этот метод в порядке? или я должен выполнять поиск необходимого ejb каждый раз?

+0

Ваш путь не будет отслеживать изменения, произошедшие после загрузки Карты. Нет никакого смысла в этом. Здесь нет ничего дорогостоящего. – EJP

+0

Мне не нужно отслеживать изменения в объекте impl, поскольку реализации являются сессионными компонентами без состояния без методов. –

+0

Я ничего не сказал об изменениях объектов impl. Я только что сказал изменения. Не подходите к выводам. Там может быть изменено то, что связано. Этого еще нет. Так что не делай этого. – EJP

ответ

1

JNDI lookups не является рекомендуемым способом для создания ссылок на локальные интерфейсы факсимильных компонентов, как из EE5 и выше. Простое вложение компонента с аннотацией @EJB или @Inject CDI сделает работу прекрасной.

+0

Его устаревшая проблема кода. Использование аннотаций не является вариантом в текущем сценарии. Существующий код с жестко закодированными соглашениями об именах для разрешения классов impl. Это первый шаг. следующий шаг естественно активирует аннотации EJB и Inject. Вы видите какие-либо проблемы с безопасностью Thread? –

+0

Извините, но вы упомянули локальный интерфейс. Я думаю, что в EJB 2.x были внутренние и удаленные интерфейсы не локальные. Не использовали их с давних времён, и я могу только вспомнить использование шаблона EE «Locator», в котором JNDI получил ссылки, кэшируется внутри одноэлементного класса. – garfield

+1

Локальные интерфейсы были введены в спецификации EJB 2.1 –

Смежные вопросы