Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема подключения удалённого EJB в сервлете / 15 сообщений из 15, страница 1 из 1
17.10.2014, 12:06
    #38779691
mytoffnax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема подключения удалённого EJB в сервлете
Доброго времени суток!
Не удаётся подключиться из сервлета к удалённой Ejb, при этом из JavaApp подключается нормально.
Код: java
1.
2.
3.
4.
5.
6.
	           Properties prop=new Properties();
	           prop.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory");
	           prop.put("java.naming.provider.url", "ejbd://localhost:4201");
	           InitialContext context = new InitialContext(prop);
	           
	           IRemoteRequestData myejb = (IRemoteRequestData)context.lookup("StatelessSessionRequestDataRemote");



В логах сервера
автор[startup] Jndi(name=StatelessSessionRequestDataRemote) --> Ejb(deployment-id=myEJB.jar/StatelessSessionRequestData)
[startup] Jndi(name=global/myEAR/myEJB/StatelessSessionRequestData!myEjb_ear.IRemoteRequestData) --> Ejb(deployment-id=myEJB.jar/StatelessSessionRequestData)


Сервер Geronimo 3
Заранее спасибо!
...
Рейтинг: 0 / 0
17.10.2014, 12:08
    #38779695
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема подключения удалённого EJB в сервлете
mytoffnaxНе удаётся подключиться из сервлета к удалённой Ejb
На каком шаге падает-то?
...
Рейтинг: 0 / 0
17.10.2014, 12:12
    #38779702
mytoffnax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема подключения удалённого EJB в сервлете
Код: java
1.
IRemoteRequestData myejb = (IRemoteRequestData)context.lookup("StatelessSessionRequestDataRemote");



Коды ошибки:
javax.naming.NamingException: Cannot lookup '/StatelessSessionRequestDataRemote'. [Root exception is java.rmi.RemoteException: Cannot read the response from the server. The class for an object being returned is not located in this system:; nested exception is:
java.lang.ClassNotFoundException: ptk_spu_ear.IRemoteRequestData]
at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:226)
at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at ru.mytoffnax.PersonAction.execute(PersonAction.java:47)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:731)
at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:48)
at org.apache.geronimo.tomcat.valve.ProtectedTargetValve.invoke(ProtectedTargetValve.java:53)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at org.apache.geronimo.pool.ThreadPool$1.run(ThreadPool.java:267)
at org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run(ThreadPool.java:397)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.rmi.RemoteException: Cannot read the response from the server. The class for an object being returned is not located in this system:; nested exception is:
java.lang.ClassNotFoundException: ptk_spu_ear.IRemoteRequestData
at org.apache.openejb.client.Client.processRequest(Client.java:271)
at org.apache.openejb.client.Client.request(Client.java:71)
at org.apache.openejb.client.JNDIContext.request(JNDIContext.java:82)
at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:220)
... 29 more
Caused by: java.lang.ClassNotFoundException: ptk_spu_ear.IRemoteRequestData
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
at org.apache.geronimo.hook.equinox.GeronimoClassLoader.loadClass(GeronimoClassLoader.java:85)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207)
at org.apache.xbean.osgi.bundle.util.equinox.EquinoxBundleClassLoader.loadClass(EquinoxBundleClassLoader.java:66)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
at org.apache.openejb.client.EjbObjectInputStream.resolveClass(EjbObjectInputStream.java:36)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at java.io.ObjectInputStream.readClass(ObjectInputStream.java:1483)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at org.apache.openejb.client.EJBMetaDataImpl.readExternal(EJBMetaDataImpl.java:251)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1837)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1796)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at org.apache.openejb.client.JNDIResponse.readExternal(JNDIResponse.java:80)
at org.apache.openejb.client.Client.processRequest(Client.java:269)
... 32 more


Почему то пишет, что не найден класс. Сам проект с EJB добавил в сервлет.
...
Рейтинг: 0 / 0
17.10.2014, 12:18
    #38779713
mytoffnax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема подключения удалённого EJB в сервлете
Пробовал идти по такому пути
Код: java
1.
 IRemoteRequestData myejb = (IRemoteRequestData)context.lookup("ptk-spuEAR/ptk-spuEJB/StatelessSessionRequestData!ptk_spu_ear.IRemoteRequestData");


Из лога
[startup] Jndi(name=global/ptk-spuEAR/ptk-spuEJB/StatelessSessionRequestData!ptk_spu_ear.IRemoteRequestData) --> Ejb(deployment-id=ptk-spuEJB.jar/StatelessSessionRequestData)


Но тогда ругается на контекст
javax.naming.NotContextException: ptk-spuEAR/ptk-spuEJB/StatelessSessionRequestData!ptk_spu_ear.IRemoteRequestData
at org.apache.xbean.naming.context.AbstractContext.lookup(AbstractContext.java:165)
at org.apache.xbean.naming.context.AbstractContext.lookup(AbstractContext.java:605)
at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at ru.mytoffnax.PersonAction.execute(PersonAction.java:48)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:731)
at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:48)
at org.apache.geronimo.tomcat.valve.ProtectedTargetValve.invoke(ProtectedTargetValve.java:53)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at org.apache.geronimo.pool.ThreadPool$1.run(ThreadPool.java:267)
at org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run(ThreadPool.java:397)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
...
Рейтинг: 0 / 0
17.10.2014, 12:20
    #38779719
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема подключения удалённого EJB в сервлете
mytoffnax,

ptk_spu_ear.IRemoteRequestData это тот же интерфейс, которого вы ждете в коде? или генеренный стаб какой-то?
...
Рейтинг: 0 / 0
17.10.2014, 12:25
    #38779734
mytoffnax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема подключения удалённого EJB в сервлете
Blazkowicz,

Прошу прощения, возможно я чего то не понимаю...

ptk_spu_ear.IRemoteRequestData это интерфейс
StatelessSessionRequestData это нужный бин от этого интерфейса
...
Рейтинг: 0 / 0
17.10.2014, 14:22
    #38780020
mytoffnax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема подключения удалённого EJB в сервлете
Так мне не кто не поможет? =(
...
Рейтинг: 0 / 0
17.10.2014, 14:25
    #38780025
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема подключения удалённого EJB в сервлете
mytoffnaxТак мне не кто не поможет? =(
Вам можно только посочуствовать. Geronimo 3 + EJB это двойной удар.
ptk_spu_ear это вы так пакет обозвали?
Сервер не видит вашего интерфейса. Он вообще есть на сервере? в WEB-INF/lib?
...
Рейтинг: 0 / 0
17.10.2014, 14:36
    #38780047
mytoffnax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема подключения удалённого EJB в сервлете
К сожалению есть и работает.

Ладно, спасибо за помощь, буду дальше голову ломать
...
Рейтинг: 0 / 0
17.10.2014, 14:37
    #38780052
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема подключения удалённого EJB в сервлете
mytoffnaxК сожалению есть и работает.
Ладно, спасибо за помощь, буду дальше голову ломать
Тогда нужно разбираться в евойном OSGi. Потому что тот класслоадер, который ищет этот интерфейс найти его не может.
Возможно это класслоадер контейнера. Попробуйте класс вынести в либы контейнера в качестве эксперимента.
...
Рейтинг: 0 / 0
17.10.2014, 14:46
    #38780073
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема подключения удалённого EJB в сервлете
mytoffnax,

org.apache.openejb.client.RemoteInitialContextFactory, наверное есть локальный, его попробуйте. а лучше
InitialContext context = new InitialContext(); сам найдет фабрику.
...
Рейтинг: 0 / 0
17.10.2014, 14:52
    #38780084
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема подключения удалённого EJB в сервлете
0FD,

не заметил "к удалённой Ejb", извиняюсь, не подойдет
...
Рейтинг: 0 / 0
17.10.2014, 15:03
    #38780091
0FD
0FD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема подключения удалённого EJB в сервлете
mytoffnax, проясните, по стеку видно что запрос делается с Geronimo, а Ejb находится вообще на другом сервере?
...
Рейтинг: 0 / 0
17.10.2014, 15:12
    #38780106
mytoffnax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема подключения удалённого EJB в сервлете
0FD,

нет, они находятся на одном сервере, в дальнейшем просто придётся раскидать по разным.
...
Рейтинг: 0 / 0
20.10.2014, 16:37
    #38782058
mytoffnax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема подключения удалённого EJB в сервлете
Пробую перенести всё на томкат, но выскакивает ошибка на InitialContext

Код: java
1.
2.
3.
4.
	           Properties prop=new Properties();
	           prop.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.RemoteInitialContextFactory");
	           prop.put("java.naming.provider.url", "ejbd://localhost:4201");
	           InitialContext context = new InitialContext(prop);



Что такое может быть? javaee-api и openejb-client добавил. Заранее спасибо!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема подключения удалённого EJB в сервлете / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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