lookup and EntityBeans
От: wavesql  
Дата: 17.05.07 07:35
Оценка:
Здравствуйте.
Проблема заключается в следующем. Есть класс employee.java с методами get() и set(), есть класс employeeBean.java где осуществляется соединение с базой и выполнение запросов(по выбору данных, вставки, удалению и обновлению) — оба этих класса находится в модуле ejb, в пакете bean.
И есть сервлет emplyeeServlet.java, где необходимо обратиться к бину employeeBean (Находится этот сервлет в модуле war, в пакете servlet).
Пробую сделать это таким образом:
InitialContext ctx = new InitialContext();
ctx.lookup("bean/employeeBean");

Но похоже таким образом этот бин не находится, так как появляется exception.
Подскажите пожалуйста как правильно организовать связь в сервлете с бином?
(использую Netbeans 5.5)
Re: lookup and EntityBeans
От: Blazkowicz Россия  
Дата: 17.05.07 07:40
Оценка:
Здравствуйте, wavesql, Вы писали:

W>Пробую сделать это таким образом:

W>InitialContext ctx = new InitialContext();
W>ctx.lookup("bean/employeeBean");
"bean/employeeBean" — откуда взялось? JNDI курил? Деплоймент дескрипоторы есть?

W>Но похоже таким образом этот бин не находится, так как появляется exception.

W>Подскажите пожалуйста как правильно организовать связь в сервлете с бином?
J2EE/EJB какой версии? В EJB3 можно инжектить, в EJB2 надо смотреть деплоймент дескрипторы и искать там JNDI имя

W>(использую Netbeans 5.5)

Это новый сервер приложений такой? Netbeans это IDE, она мало отношения имеет к серверу приложений в котором крутятся бины и сервлеты.
Re[2]: lookup and EntityBeans
От: wavesql  
Дата: 17.05.07 08:02
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, wavesql, Вы писали:


W>>(использую Netbeans 5.5)

B>Это новый сервер приложений такой? Netbeans это IDE, она мало отношения имеет к серверу приложений в котором крутятся бины и сервлеты.
Да не, сервер приложений jboss 4.0. Указав IDE, в котором разрабатываю EnterpriseApplication, думал вопросов будет поменьше, оказалось наоборот

B>"bean/employeeBean" — откуда взялось? JNDI курил? Деплоймент дескрипоторы есть?

ejb-deployer.xml — тут можно JNDI посмотреть? (я извиняюсь за такой вопрос, только начинаю разбираться с J2EE)

B>J2EE/EJB какой версии? В EJB3 можно инжектить, в EJB2 надо смотреть деплоймент дескрипторы и искать там JNDI имя

Скажите, а что такое инжектить?(или где можно почитать про это)
Re[3]: lookup and EntityBeans
От: Blazkowicz Россия  
Дата: 17.05.07 08:14
Оценка:
Здравствуйте, wavesql, Вы писали:

W>Да не, сервер приложений jboss 4.0. Указав IDE, в котором разрабатываю EnterpriseApplication, думал вопросов будет поменьше, оказалось наоборот

Конечный результат не должен зависеть от IDE. Но зачастую зависит от апп сервера.

B>>"bean/employeeBean" — откуда взялось? JNDI курил? Деплоймент дескрипоторы есть?

W>ejb-deployer.xml — тут можно JNDI посмотреть? (я извиняюсь за такой вопрос, только начинаю разбираться с J2EE)
Не знаю, я не гуру EJB
http://www.google.com/search?hl=en&q=JBoss+EJB+deployment+descriptors


B>>J2EE/EJB какой версии? В EJB3 можно инжектить, в EJB2 надо смотреть деплоймент дескрипторы и искать там JNDI имя

W>Скажите, а что такое инжектить?(или где можно почитать про это)

Что-то ты меня запутал с утра пораньше... какой нафиг lookup для EntityBeans?
Почитай хоть один пример по теме:
http://www.oracle.com/technology/tech/java/oc4j/1013/how_to/how-to-ejb30-entity-ejb/doc/how-to-ejb30-entity-ejb.html
Re: lookup and EntityBeans
От: msqrt84 Россия  
Дата: 17.05.07 08:47
Оценка:
Здравствуйте, wavesql, Вы писали:

W>Но похоже таким образом этот бин не находится, так как появляется exception.

W>Подскажите пожалуйста как правильно организовать связь в сервлете с бином?
W>(использую Netbeans 5.5)

Тут особо на сервлете зацикливаться не надо. Я бы рад объяснить, но уж очень это долго, у самого были проблемы. Использовал JBoss 4.0.2 + EJB 2.1. Если используете то же самое, то очень полезно будет почитать это руководство. Информация в статье, конечно, устарела, но чтобы разобраться, лучше не найти, к тому же на русском...частично.
Re: lookup and EntityBeans
От: mrkam  
Дата: 17.05.07 09:07
Оценка:
В NetBeans 5.5 открываете исходники сервлета, щелкаете правой кнопкой мыши в редакторе и выбираете Enteprise Resources > Call Enterprise Bean (за точность названий не ручаюсь), далее выбираете нужный бин (он должен находиться в одном из открытых проектов) и NetBeans генерирует для вас весь необходимый lookup-код.
Re[2]: lookup and EntityBeans
От: wavesql  
Дата: 17.05.07 11:04
Оценка:
Здравствуйте, mrkam, Вы писали:

M>В NetBeans 5.5 открываете исходники сервлета, щелкаете правой кнопкой мыши в редакторе и выбираете Enteprise Resources > Call Enterprise Bean (за точность названий не ручаюсь), далее выбираете нужный бин (он должен находиться в одном из открытых проектов) и NetBeans генерирует для вас весь необходимый lookup-код.


Спасибо за полезный совет!!!
Создал EntityClass(насколько я знаю это и есть entity bean), но когда, в редакторе выбираю Enteprise Resources > Call Enterprise Bean, этот бин не виден...Если же создать SessionBean, то его видно. Но хотелось бы приложение сделать используя EntityBean'ы.
Re[3]: lookup and EntityBeans
От: mrkam  
Дата: 22.05.07 09:01
Оценка:
Здравствуйте, wavesql, Вы писали:

W>Здравствуйте, mrkam, Вы писали:


M>>В NetBeans 5.5 открываете исходники сервлета, щелкаете правой кнопкой мыши в редакторе и выбираете Enteprise Resources > Call Enterprise Bean (за точность названий не ручаюсь), далее выбираете нужный бин (он должен находиться в одном из открытых проектов) и NetBeans генерирует для вас весь необходимый lookup-код.


W>Спасибо за полезный совет!!!

W>Создал EntityClass(насколько я знаю это и есть entity bean), но когда, в редакторе выбираю Enteprise Resources > Call Enterprise Bean, этот бин не виден...Если же создать SessionBean, то его видно. Но хотелось бы приложение сделать используя EntityBean'ы.

Я так понимаю, что вы имеете дело с J2EE 1.4, поскольку понятие Entity Bean в Java EE 5 более не употребляется. Отсюда вывод — нужно создавать в NetBeans проект J2EE 1.4, тогда там будут и Entity Beans и lookup для них. В частности, у меня получилась такие стоки:

    private NewEntityLocalHome lookupNewEntityBean() {
        try {
            Context c = new InitialContext();
            NewEntityLocalHome rv = (NewEntityLocalHome) c.lookup("java:comp/env/ejb/NewEntityBean");
            return rv;
        }
        catch(NamingException ne) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE,"exception caught" ,ne);
            throw new RuntimeException(ne);
        }
    }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.