2014-12-23 5 views
0

У меня есть экземпляр JBoss EAP 6.1, где я развернул 2 приложения EJB. Сервер запускается без ошибок!EJB Lookup работает, но вызов метода не

Теперь я создал приложение javaSE для вызова этих EJB.

А вот проблема ...

Если я поиск в EJB из applicationA/EJBBean!br.com.sample.EJBRemote он прекрасно работает, и я могу назвать какой-либо способ формировать его.

Но, я делаю поиск EJB от applicationB/EJBBean!br.com.sample.EJBRemote, он отлично работает. Но когда я вызываю метод, приложение javaSE останавливается. У меня нет ошибок, нет выходов. Я поставил точку останова в первой строке реализации метода, и я увидел, что это не выполнено.

Мой поиск кода следующим образом:

public static <T> T getEJB(final String moduleName, final String beanName, final Class<T> viewClass) throws NamingException { 
    final String lookupName = aplicationName + "/" + beanName + "!" + viewClass.getName(); 
    return (T) ic.lookup(lookupName); 
} 

Я называю это из основного метода:

final MyRemote beanA = EJBUtils.getEJB("appA", "MyBean", MyRemote.class); 
final MyRemote beanB = EJBUtils.getEJB("appB", "MyBean", MyRemote.class); 

Оба из них хорошо работает

Но когда я делаю:

beanA.methodA(); // This works and prints "methodA" onto console. 
beanB.methodA(); // This doesn't work. And dont print any thing onto console. 
System.out.println("...") // This line doesn't execute 
+0

Hi. Я проверил ваш случай, и оба метода очень просто на моем компьютере. Можете ли вы отправить код клиента вместе с параметрами InitialContext, которые вы используете? Вы упаковываете appA как appA.jar и appB как appB.jar (оба банка ejb)? – zbig

ответ

-1

Loo ks как проблема памяти. Перейдите в установленную папку JVM и найдите кучу кучи. Вы обязательно получите некоторые подсказки.

+0

Но я не получаю никакого OutOfMemoryError .... – brbrbr

+0

Даже undeploing applicationA, я получил ту же ошибку в приложенииB ... – brbrbr

+0

Это проясняет проблему только в applicationB и не относится к ApplicationA. Несколько догадок: 1) Проверьте свои аргументы JVM. 2) основной класс, упомянутый для applicationB, должен быть доступен в Jar 3) Очистить и переустановить все. –

0

Вы пытаетесь найти один и тот же компонент из двух разных развертываний. Я никогда этого не видел. вы должны иметь BeanA в BeanARemote, банку BeanA и т. д. BeanB как BeanBRemote, банку BeanB и т. д. Я представляю, что если вы обернете все это в блок catch, вы увидите исключение, которое получает бросок, когда вы вызываете метод BeanB , поиск не всегда генерирует исключение, пока вы не попытаетесь его использовать.

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