давая EJB JNDI - PullRequest
       45

давая EJB JNDI

1 голос
/ 24 марта 2009

Я создал и EJB с удаленным интерфейсом:

@Stateless
public class TestSessionBean implements TestSessionRemote 
{

    public void businessMethod() 
    {
            System.out.println ("***businessMethod");
    }
}

I для доступа к нему из другого компонента (например, сервлета), работающего на сервере, через:

ic = new InitialContext();
ic.lookup("myEJB");

Я использую NetBeans 6.5.1 и Glassfish v2.

Как я могу это сделать?

Спасибо, Идо

1 Ответ

2 голосов
/ 24 марта 2009

на самом деле ejb3 использует соглашение об именах по умолчанию, которое я не нашел способа обойти.

Название вашего боба будет примерно таким: TestSessionBean # package.TestSessionBean

Для доступа к удаленному сервису вы можете сделать что-то вроде этого

InitialContext ctx = new InitialContext();
ctx.lookup(interfaceClass.getSimpleName()+"#"+interfaceClass.getName());

где interfaceClass - это класс вашего удаленного интерфейса.

обратите внимание, что вы не определили удаленный интерфейс (или локальный в этом отношении) для этого веб-сервера. вы не сможете получить доступ к ejb из другого контекста.

Что касается изменения имени, которое, на самом деле, я не думаю, возможно посредством аннотаций. хотя не уверен

...