Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Websphere клиент, вызвать EJB из тругого апп-серверва  
:(
    Опции темы
KostenkoSergey
Дата 16.4.2007, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 3
Всего: 8



Как можно вызвать EJB, развёрнутый на WebSphere AppServer с другого сервера приложений (ну или контейнера для сервлетов) ?


Пробую , для начала, по аналогии с другими серверами, написать просто майновый класс, что-то типа:
Код

import java.util.Hashtable;
import javax.naming.*;
public class TestClinet {
  public static void main(String[] args) throws Exception {
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
    env.put (Context.PROVIDER_URL, "localhost");
    InitialContext icontext = new InitialContext(env);
}
}


а в ответ :
Код

java.lang.NoClassDefFoundError: com/ibm/CORBA/iiop/ObjectURL
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:141)
    at com.ibm.websphere.naming.WsnInitialContextFactory.init_implClassCtor(WsnInitialContextFactory.java:172)
    at com.ibm.websphere.naming.WsnInitialContextFactory.getInitialContext(WsnInitialContextFactory.java:112)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
    at javax.naming.InitialContext.init(InitialContext.java:219)
    at javax.naming.InitialContext.<init>(InitialContext.java:195)


Библиотеки WebSphere 6.0. Client подключил  smile 


Это сообщение отредактировал(а) KostenkoSergey - 16.4.2007, 10:49
PM ICQ   Вверх
KostenkoSergey
Дата 16.4.2007, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 3
Всего: 8



Прошу прощения - поспешил с вопросом.
Нужно включить  ibmorb.jar в classpath, из ibm jdk (i.e. inside jre\lib folder).
PM ICQ   Вверх
y3u
Дата 16.4.2007, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: 7
Всего: 13



ну написано же, нету классика, проверь есть он или нету его...


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
KostenkoSergey
Дата 16.4.2007, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 3
Всего: 8



Цитата(y3u @  16.4.2007,  11:07 Найти цитируемый пост)
ну написано же, нету классика, проверь есть он или нету его...


да.. эт я уже понял smile Спасибо.
Пошёл дальше:
Код

 Object remoteObj =  icontext.lookup("ejb/io/ExHome");


И тут же напоролся на :
Код

javax.naming.NamingException: Failed to initialize the ORB [Root exception is java.lang.ClassCastException]
    at com.ibm.ws.naming.util.Helpers.getOrb(Helpers.java:294)
    at com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContextInternal(WsnInitCtxFactory.java:373)
    at com.ibm.ws.naming.util.WsnInitCtx.getContext(WsnInitCtx.java:112)
    at com.ibm.ws.naming.util.WsnInitCtx.getContextIfNull(WsnInitCtx.java:422)
    at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:143)
    at javax.naming.InitialContext.lookup(InitialContext.java:347)
    at TestClinet.main(TestClinet.java:20)
Caused by: java.lang.ClassCastException
    at com.ibm.ws.orb.GlobalORBFactory.init(GlobalORBFactory.java:82)
    at com.ibm.ejs.oa.EJSORBImpl.initializeORB(EJSORBImpl.java:174)
    at com.ibm.ejs.oa.EJSClientORBImpl.<init>(EJSClientORBImpl.java:97)
    at com.ibm.ejs.oa.EJSClientORBImpl.<init>(EJSClientORBImpl.java:73)
    at com.ibm.ejs.oa.EJSORB.init(EJSORB.java:386)
    at com.ibm.ws.naming.util.Helpers.getOrb(Helpers.java:285)
    ... 6 more
Exception in thread "main" 

PM ICQ   Вверх
y3u
Дата 16.4.2007, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: 7
Всего: 13



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

Это сообщение отредактировал(а) y3u - 16.4.2007, 12:10


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
KostenkoSergey
Дата 16.4.2007, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 3
Всего: 8



Похоже дело в том, что  я пытоаюсь получить доступ по JNDI на Websphere 6 из Sun JRE,  попробовал из-под ibm-овской - прошло.
Но получить доступ нужно мименно из под Sun JRE ...
Вот тебе  и портабельность :(

2y3u - спасибо за участие, но про "пройтись по стеку" недопонял .. стек вызовов привлекших к ошибке я привёл. Что ещё мне даст  дебаг ?

Это сообщение отредактировал(а) KostenkoSergey - 16.4.2007, 12:27
PM ICQ   Вверх
y3u
Дата 16.4.2007, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: 7
Всего: 13



на дебаге можно посмотреть на класс каст эксцепшен, который тебе все валит, можно посмотреть какой инстанс нужен и какой инстанс реально приходит и сделать вывод почему не кастится


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
chief39
Дата 16.4.2007, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 11
Всего: 77



Цитата(KostenkoSergey @  16.4.2007,  12:25 Найти цитируемый пост)
Похоже дело в том, что  я пытоаюсь получить доступ по JNDI на Websphere 6 из Sun JRE,  попробовал из-под ibm-овской - прошло.
Но получить доступ нужно мименно из под Sun JRE ...
Вот тебе  и портабельность :(

Закинь необходимые ибмовские либы в сановскую жре в эндорсед


--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
KostenkoSergey
Дата 16.4.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 3
Всего: 8



Вариант с endorsed  не катит, пробовал.
Если патчить ibm-овскими либами оно просит пропатчить ещё и core.jar, но в этом случае:

Код

Error occurred during initialization of VM
java.lang.NoSuchMethodException: java.lang.ClassLoader.addClass

PM ICQ   Вверх
w1nd
Дата 16.4.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 7
Всего: 54



О-о... всё не так просто, как кажется. Мне для того, чтобы подключится к удаленной вебсфере из sun jvm потребовалось:

Положить в системное свойство com.ibm.CORBA.ConfigURL урл к конфигурационному файлу, содержащему следующее:

Код

com.ibm.CORBA.securityEnabled=true
com.ibm.CORBA.authenticationTarget=BasicAuth
com.ibm.CORBA.authenticationRetryEnabled=true
com.ibm.CORBA.authenticationRetryCount=3
com.ibm.CORBA.validateBasicAuth=true
com.ibm.CORBA.securityServerHost=
com.ibm.CORBA.securityServerPort=
com.ibm.CORBA.loginTimeout=300
com.ibm.CORBA.loginSource=prompt
com.ibm.CORBA.loginUserid=
com.ibm.CORBA.loginPassword=
com.ibm.CSI.performStateful=true
com.ibm.CSI.performClientAuthenticationRequired=false
com.ibm.CSI.performClientAuthenticationSupported=true
com.ibm.CSI.performTLClientAuthenticationRequired=false
com.ibm.CSI.performTLClientAuthenticationSupported=false
com.ibm.CSI.performTransportAssocSSLTLSRequired=false
com.ibm.CSI.performTransportAssocSSLTLSSupported=false
com.ibm.CSI.performMessageIntegrityRequired=true
com.ibm.CSI.performMessageIntegritySupported=true
com.ibm.CSI.performMessageConfidentialityRequired=false
com.ibm.CSI.performMessageConfidentialitySupported=true
com.ibm.ssl.alias=DefaultSSLSettings
com.ibm.CORBA.requestTimeout=180


Также установить системные свойства:

org.omg.CORBA.ORBClass = com.ibm.CORBA.iiop.ORB
org.omg.CORBA.ORBSingletonClass = com.ibm.rmi.corba.ORBSingleton
javax.rmi.CORBA.StubClass = com.ibm.rmi.javax.rmi.CORBA.StubDelegateImpl
javax.rmi.CORBA.PortableRemoteObjectClass = com.ibm.rmi.javax.rmi.PortableRemoteObject
javax.rmi.CORBA.UtilClass = com.ibm.ws.orb.WSUtilDelegateImpl
com.ibm.CORBA.ORBPluginClass.com.ibm.ws.wlm.client.WLMClient = 
com.ibm.CORBA.ORBPluginClass.com.ibm.ws.orbimpl.transport.WSTransport = 
com.ibm.CORBA.ORBPluginClass.com.ibm.ws.orbimpl.WSORBPropertyManager =
com.ibm.CORBA.ORBPluginClass.com.ibm.ISecurityUtilityImpl.SecurityPropertyManager = 
com.ibm.CORBA.ORBPluginClass.com.ibm.ws.orb.WSSubcontractInitImpl = 
org.omg.PortableInterceptor.ORBInitializerClass.com.ibm.ws.Transaction.JTS.TxInterceptorInitializer = 
org.omg.PortableInterceptor.ORBInitializerClass.com.ibm.ejs.ras.RasContextSupport = 
org.omg.PortableInterceptor.ORBInitializerClass.com.ibm.ISecurityLocalObjectBaseL13Impl.ClientRIWrapper = 
org.omg.PortableInterceptor.ORBInitializerClass.com.ibm.ws.activity.remote.cos.ActivityServiceClientInterceptor = 
org.omg.PortableInterceptor.ORBInitializerClass.com.ibm.ISecurityLocalObjectBaseL13Impl.CSIClientRI =  
org.omg.PortableInterceptor.ORBInitializerClass.com.ibm.debug.olt.ivbtrjrt.OLT_RI = 
org.omg.PortableInterceptor.ORBInitializerClass.com.ibm.ws.wlm.client.WLMClientInitializer =
com.ibm.ws.orb.transport.ConnectionInterceptorName = com.ibm.ISecurityLocalObjectBaseL13Impl.SecurityConnectionInterceptor
com.ibm.ws.orb.transport.WSSSLClientSocketFactoryName = com.ibm.ws.security.orbssl.WSSSLClientSocketFactoryImpl
com.ibm.CORBA.enableLocateRequest = true
com.ibm.CORBA.ORBCharEncoding = UTF8
com.ibm.CORBA.ForceTunnel = never
com.ibm.CORBA.TransportMode = Pluggable

В класс-путь поместить:

bootstrap.jar
com.ibm.ws.runtime_6.1.0.jar
com.ibm.ws.sib.server_2.0.0.jar
com.ibm.ws.sib.utils_2.0.0.jar
com.ibm.ws.webservices.thinclient_6.1.0.jar
ecore.jar
ecutils.jar
ffdc.jar
ibmorb.jar
iwsorbutil.jar
lmproxy.jar
marshall.jar
properties.jar
querybean.jar
utils.jar
wsexception.jar
ws_runtime.jar
xml.jar




Это сообщение отредактировал(а) w1nd - 16.4.2007, 17:03


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
KostenkoSergey
Дата 16.4.2007, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 3
Всего: 8



Цитата(w1nd @  16.4.2007,  16:07 Найти цитируемый пост)
О-о... всё не так просто, как кажется. Итак, для того, чтобы подключится к удаленной вебсфере из sun jvm нужно


 smile  Ну ни фига себе !!!!!!!  Откуда ты это узнал ? smile

Спасибо, сичас буду пробовать.. получается дело не в патчах к Sun JRE, а в  настройках WS ?

 
1. У меня sas.client.props расположен в \was\profiles\AppSrv01\properties\  - это он? Можешь поподробнее, где этот урл писать и что за формат конфига ?

PM ICQ   Вверх
w1nd
Дата 16.4.2007, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 7
Всего: 54



Цитата(KostenkoSergey @  16.4.2007,  16:47 Найти цитируемый пост)
Откуда ты это узнал?

Узнал это не я, а мой коллега, в результате долгих попыток и поисков. Я теперь этим пользуюсь smile 

Цитата(KostenkoSergey @  16.4.2007,  16:47 Найти цитируемый пост)
У меня sas.client.props расположен в \was\profiles\AppSrv01\properties\  - это он? Можешь поподробнее, где этот урл писать и что за формат конфига?

Формат конфига - копи-паст с моего сообщения. Урл писать в системное свойство с названием "com.ibm.CORBA.ConfigURL". Конечно, кое-какое настройки, возможно, вам не подойдут, но дальше уж разберётесь.


Это сообщение отредактировал(а) w1nd - 16.4.2007, 17:05


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
KostenkoSergey
Дата 16.4.2007, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 3
Всего: 8



У меня IBM WebSphere Application Server, 6.0.0.0
Я что то нигде не могу найти скледующие файлы:
com.ibm.ws.runtime_6.0.0.jar
com.ibm.ws.sib.server_2.0.0.jar
com.ibm.ws.sib.utils_2.0.0.jar
com.ibm.ws.webservices.thinclient_6.0.0.jar

 smile 


Это сообщение отредактировал(а) KostenkoSergey - 16.4.2007, 19:31
PM ICQ   Вверх
KostenkoSergey
Дата 17.4.2007, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 3
Всего: 8



w1nd, а вы точно не плугабили жре от сан ?
Я вот тут посмотрел [http://www-1.ibm.com/support/docview.wss?rs=180&uid=swg27007298]
Так, если правильно понял - то для Sun 32-bit Java 2 SDK, v 1.4.2_05 какой-то Pluggable Application client должен быть ...

И ещё возвращаясь к твоему совету "Также установить системные свойства:" - это где надо было сделать ? Может я не туда их вписал :(
PM ICQ   Вверх
KostenkoSergey
Дата 17.4.2007, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 3
Всего: 8



Есть небольшой сдвиг.
В дистрибутиве с WS ND есть AppClient, после его инсталяции обнаружил следующие библиотеки: ibmext.jar, ibmorb.jar, ibmorbapi.jar, после того как пропатчил ими Sun JRE  endorsed Standalone приложение заработало, а вот сервер по прежнему возвращает ошибку :(

Скорее всего - это из-за того, что клиент кастит com.ibm.websphere.naming.WsnInitialContextFactory на com.sun.corba.se.impl.orb.ORBImpl, а сервер в моём случае на сom.inprise.vbroker.orb.ORB...  smile 

и шо его блин делать  smile 




Это сообщение отредактировал(а) KostenkoSergey - 17.4.2007, 17:42
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0578 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.