powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / как найти bean по JNDIName(servlet в Tomcat, bean в j2ee)?
9 сообщений из 9, страница 1 из 1
как найти bean по JNDIName(servlet в Tomcat, bean в j2ee)?
    #33209475
kin12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Servlet находится в Tomcat, bean на j2ee сервере (JNDIName для application, в котором bean = "MyFactory").
В Servlet в функции service делаю так:
//------------------------------------------------------
Properties prop = new Properties();
prop.put(
Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.cosnaming.CNCtxFactory"
);
prop.put(Context.PROVIDER_URL,"iiop://localhost:1050");
Context initial = new InitialContext(prop);

Object objref = (Context)initial.lookup("MyFactory");
//------------------------------------------------------

На последней строчке улетаем: java.lang.ClassCastException: com.sun.corba.se.internal.iiop.CDRInputStream$1.

В Explorer пусто - хотя должен выводить строчку (без верхних строк выводит).

Кстати в консольном приложении все работает - bean вижу.
...
Рейтинг: 0 / 0
как найти bean по JNDIName(servlet в Tomcat, bean в j2ee)?
    #33209926
KPIIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
com.sun.corba
что это такое - при чем тут Corba - в этом наверное ошибка - Context.class из какого пакета???
...
Рейтинг: 0 / 0
как найти bean по JNDIName(servlet в Tomcat, bean в j2ee)?
    #33210005
kin12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
import javax.naming.Context;
...
Рейтинг: 0 / 0
как найти bean по JNDIName(servlet в Tomcat, bean в j2ee)?
    #33210244
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kin12import javax.naming.Context;
а вы уверены, что объект по именем MyFactory имеет импенно такой тип.

вообще, если речь идет о ejb, то обычно сначала получается просто тип Object, затем он преобразуется при помощи метода narrow к требуемому типу и обячо это home интерфейс какого то бина. У тебя же это контектс какой то и темболее, по спецификации ejb, если метод возвращает тип Object, то приведение типов нужно делать через narrow().
...
Рейтинг: 0 / 0
как найти bean по JNDIName(servlet в Tomcat, bean в j2ee)?
    #33210332
kin12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wessen kin12import javax.naming.Context;
а вы уверены, что объект по именем MyFactory имеет импенно такой тип.

вообще, если речь идет о ejb, то обычно сначала получается просто тип Object, затем он преобразуется при помощи метода narrow к требуемому типу и обячо это home интерфейс какого то бина. У тебя же это контектс какой то и темболее, по спецификации ejb, если метод возвращает тип Object, то приведение типов нужно делать через narrow().

все верно - далее я делаю так:
//-------------------------------
FactoryHome fh = (FactoryHome) PortableRemoteObject.narrow(
objref,
FactoryHome.class
);

/* get EJB Remote interface */
FactoryObject fo = fh.create();

User user = fo.getUser("login1");
//--------------------------------------------
было бы клёво, если бы дело до этого дошло
на этом все падает:
Object objref = (Context)initial.lookup("MyFactory");

все тоже самое делал в консоле - все нормаль
...
Рейтинг: 0 / 0
как найти bean по JNDIName(servlet в Tomcat, bean в j2ee)?
    #33210343
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
InitialContext initialContext= new  InitialContext(properties);
 // Search EJB
Object homeObject=initialContext.lookup("MyFactory");

EJBHome ejbHome = (EJBHome)PortableRemoteObject.narrow (homeObject, EJBHome. class );
EJBremote=ejbHome.create();
Обычно так ищутся ежбины.
...
Рейтинг: 0 / 0
как найти bean по JNDIName(servlet в Tomcat, bean в j2ee)?
    #33210368
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотел поумничать но опоздал немного:). Может тогда так:
Код: plaintext
initialContext.lookup("java:comp/env/ejb/MyFactory");
...
Рейтинг: 0 / 0
как найти bean по JNDIName(servlet в Tomcat, bean в j2ee)?
    #33210390
kin12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
воооооооооооооо

заменил
Context initial = new InitialContext(prop);
на
InitialContext initial = new InitialContext(prop);
ему похорошело (хотя почему так) - но теперь он виснет на
FactoryHome fh = (FactoryHome) PortableRemoteObject.narrow(
ojref,
FactoryHome.class
);

Explorer выдает ошибку статуса 500
//----------------
description The server encountered an internal error () that prevented it from fulfilling this request.
//-----------------
javax.servlet.ServletException: Servlet execution threw an exception
java.lang.NoClassDefFoundError: com.luxoft.ikotelkin.bean.FactoryHome
...
Рейтинг: 0 / 0
как найти bean по JNDIName(servlet в Tomcat, bean в j2ee)?
    #33210410
kin12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ТимоН
Код: plaintext
initialContext.lookup("java:comp/env/ejb/MyFactory");


так кажется делают, когда servlet развернут на томже серваке, что и bean, где "ejb/MyFactory" reference на JNDIName - хотя могу ошибаться
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / как найти bean по JNDIName(servlet в Tomcat, bean в j2ee)?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]