Invocación de EJB desde iView (SAP ECP y SAP J2EE Engine)
He realizado 2 pruebas sin éxito para invocar un EJB desde un iView. Estoy usando SAP ECP y SAP J2EE Engine. Alguien tiene experiencia con estas herramientas?
Prueba1: Invocar un método de un EJB.
1.- Crear modEJB.ear con la herramienta de deploy de SAPJ2EE, el cual contiene el modEJB.jar
2.- Hacer deploy del modEJB.ear en el SAPJ2EE a través de la herramienta de deploy, seleccionando la opción Root Lookup .
3.- Subir TestEJB.par al Portal.
4.- Crear una java iView basada en una master iView con la componente TestEJB.default
5.- Probar la iView
6.- El error da en la línea:
TestSvcHome home = (TestSvcHome)PortableRemoteObject.narrow(o, TestSvcHome.class);
Al parecer obtiene el contexto, pero no puede obtener el objeto home.
Al hacer telnet al puerto 2323 y ejecutar print(TestSvc) dice:
[JNDIShell] Not a subcontext !
[JNDIShell] Object contains : ejb.TestSvcHomeImpl0@7c9492
Nota1: se referencia desde el proyecto que genera el portal archive la librería: client.jar
Nota2: el jar del EJB fue generado con JBuilder para JBoss
Mensaje de Error:
java.lang.ClassCastException: ejb.TestSvcHome
at com.inqmy.core.service.context.container.cross.PortableRemoteObjectContainer.narrow(PortableRemoteObjectContainer.java:88)
at com.inqmy.system.PortableRemoteObjectProxy.narrow(PortableRemoteObjectProxy.java:24)
at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:132)
at MyJSPDynPage$MyDynPage.onSendButtonClicked(MyJSPDynPage.java:52)
at java.lang.reflect.Method.invoke(Native Method)
at com.sapportals.htmlb.page.DynPage.doProcessCurrentEvent(DynPage.java:153)
at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:95)
at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:139)
at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:127)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:291)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:198)
at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:231)
at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:475)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:291)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:198)
at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:483)
at com.sapportals.portal.prt.portalconnection.sapnative.DelegatedPlugIn.handleRequest(DelegatedPlugIn.java:725)
at com.sapportals.portal.prt.portalconnection.sapnative.PortalPlugIn.handleRequest(PortalPlugIn.java:132)
at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:635)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:1264)
at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:132)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:1264)
at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:150)
at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:699)
at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:501)
at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:199)
at com.inqmy.services.httpserver.server.Response.handle(Response.java:159)
at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:802)
at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)
at com.inqmy.core.cluster.impl3.ParserRunner.run(ParserRunner.java:30)
at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:45)
at java.security.AccessController.doPrivileged(Native Method)
at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:126)
Prueba 2: Invocar un método de un EJB, cambiando la obtención del objeto home
1.- Obtener modEJB_client.jar desde la herramienta de Administración de SAPJ2EE y agregarla al directorio privatelib, referenciándola como librería en el proyecto.
2.- Modificar MyJSPDynPage:
TestSvcHomeImpl0 home = (TestSvcHomeImpl0)PortableRemoteObject.narrow(o, TestSvcHome.class);
2.- Hacer deploy del modEJB.ear en el SAPJ2EE a través de la herramienta de deploy, seleccionando la opción Root Lookup .
3.- Subir TestEJB.par al Portal.
4.- Crear una java iView basada en una master iView con la componente TestEJB.default
5.- Probar la iView
6.- El error da en la línea:
TestSvcHome home = (TestSvcHome)PortableRemoteObject.narrow(o, TestSvcHome.class);
Al parecer obtiene el contexto, pero no puede obtener el objeto home.
Al hacer telnet al puerto 2323 y ejecutar print(TestSvc) dice:
[JNDIShell] Not a subcontext !
[JNDIShell] Object contains : ejb.TestSvcHomeImpl0@3f8a3e
Nota1: se referencia desde el proyecto que genera el portal archive la librería: client.jar
Nota2: el jar del EJB fue generado con JBuilder para JBoss
Mensaje de Error:
java.lang.ClassCastException: ejb.TestSvcHome
at com.inqmy.core.service.context.container.cross.PortableRemoteObjectContainer.narrow(PortableRemoteObjectContainer.java:88)
at com.inqmy.system.PortableRemoteObjectProxy.narrow(PortableRemoteObjectProxy.java:24)
at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:132)
at MyJSPDynPage$MyDynPage.onSendButtonClicked(MyJSPDynPage.java:51)
at java.lang.reflect.Method.invoke(Native Method)
at com.sapportals.htmlb.page.DynPage.doProcessCurrentEvent(DynPage.java:153)
at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:95)
at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:139)
at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:127)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:291)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:198)
at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:231)
at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:475)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:291)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:198)
at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:483)
at com.sapportals.portal.prt.portalconnection.sapnative.DelegatedPlugIn.handleRequest(DelegatedPlugIn.java:725)
at com.sapportals.portal.prt.portalconnection.sapnative.PortalPlugIn.handleRequest(PortalPlugIn.java:132)
at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:635)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:1264)
at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:132)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:1264)
at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:150)
at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:699)
at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:501)
at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:199)
at com.inqmy.services.httpserver.server.Response.handle(Response.java:159)
at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:802)
at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)
at com.inqmy.core.cluster.impl3.ParserRunner.run(ParserRunner.java:30)
at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:45)
at java.security.AccessController.doPrivileged(Native Method)
at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:126)
Prueba1: Invocar un método de un EJB.
1.- Crear modEJB.ear con la herramienta de deploy de SAPJ2EE, el cual contiene el modEJB.jar
2.- Hacer deploy del modEJB.ear en el SAPJ2EE a través de la herramienta de deploy, seleccionando la opción Root Lookup .
3.- Subir TestEJB.par al Portal.
4.- Crear una java iView basada en una master iView con la componente TestEJB.default
5.- Probar la iView
6.- El error da en la línea:
TestSvcHome home = (TestSvcHome)PortableRemoteObject.narrow(o, TestSvcHome.class);
Al parecer obtiene el contexto, pero no puede obtener el objeto home.
Al hacer telnet al puerto 2323 y ejecutar print(TestSvc) dice:
[JNDIShell] Not a subcontext !
[JNDIShell] Object contains : ejb.TestSvcHomeImpl0@7c9492
Nota1: se referencia desde el proyecto que genera el portal archive la librería: client.jar
Nota2: el jar del EJB fue generado con JBuilder para JBoss
Mensaje de Error:
java.lang.ClassCastException: ejb.TestSvcHome
at com.inqmy.core.service.context.container.cross.PortableRemoteObjectContainer.narrow(PortableRemoteObjectContainer.java:88)
at com.inqmy.system.PortableRemoteObjectProxy.narrow(PortableRemoteObjectProxy.java:24)
at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:132)
at MyJSPDynPage$MyDynPage.onSendButtonClicked(MyJSPDynPage.java:52)
at java.lang.reflect.Method.invoke(Native Method)
at com.sapportals.htmlb.page.DynPage.doProcessCurrentEvent(DynPage.java:153)
at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:95)
at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:139)
at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:127)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:291)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:198)
at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:231)
at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:475)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:291)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:198)
at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:483)
at com.sapportals.portal.prt.portalconnection.sapnative.DelegatedPlugIn.handleRequest(DelegatedPlugIn.java:725)
at com.sapportals.portal.prt.portalconnection.sapnative.PortalPlugIn.handleRequest(PortalPlugIn.java:132)
at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:635)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:1264)
at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:132)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:1264)
at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:150)
at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:699)
at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:501)
at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:199)
at com.inqmy.services.httpserver.server.Response.handle(Response.java:159)
at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:802)
at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)
at com.inqmy.core.cluster.impl3.ParserRunner.run(ParserRunner.java:30)
at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:45)
at java.security.AccessController.doPrivileged(Native Method)
at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:126)
Prueba 2: Invocar un método de un EJB, cambiando la obtención del objeto home
1.- Obtener modEJB_client.jar desde la herramienta de Administración de SAPJ2EE y agregarla al directorio privatelib, referenciándola como librería en el proyecto.
2.- Modificar MyJSPDynPage:
TestSvcHomeImpl0 home = (TestSvcHomeImpl0)PortableRemoteObject.narrow(o, TestSvcHome.class);
2.- Hacer deploy del modEJB.ear en el SAPJ2EE a través de la herramienta de deploy, seleccionando la opción Root Lookup .
3.- Subir TestEJB.par al Portal.
4.- Crear una java iView basada en una master iView con la componente TestEJB.default
5.- Probar la iView
6.- El error da en la línea:
TestSvcHome home = (TestSvcHome)PortableRemoteObject.narrow(o, TestSvcHome.class);
Al parecer obtiene el contexto, pero no puede obtener el objeto home.
Al hacer telnet al puerto 2323 y ejecutar print(TestSvc) dice:
[JNDIShell] Not a subcontext !
[JNDIShell] Object contains : ejb.TestSvcHomeImpl0@3f8a3e
Nota1: se referencia desde el proyecto que genera el portal archive la librería: client.jar
Nota2: el jar del EJB fue generado con JBuilder para JBoss
Mensaje de Error:
java.lang.ClassCastException: ejb.TestSvcHome
at com.inqmy.core.service.context.container.cross.PortableRemoteObjectContainer.narrow(PortableRemoteObjectContainer.java:88)
at com.inqmy.system.PortableRemoteObjectProxy.narrow(PortableRemoteObjectProxy.java:24)
at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:132)
at MyJSPDynPage$MyDynPage.onSendButtonClicked(MyJSPDynPage.java:51)
at java.lang.reflect.Method.invoke(Native Method)
at com.sapportals.htmlb.page.DynPage.doProcessCurrentEvent(DynPage.java:153)
at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:95)
at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:139)
at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:127)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:291)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:198)
at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:231)
at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:475)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:291)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:198)
at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:483)
at com.sapportals.portal.prt.portalconnection.sapnative.DelegatedPlugIn.handleRequest(DelegatedPlugIn.java:725)
at com.sapportals.portal.prt.portalconnection.sapnative.PortalPlugIn.handleRequest(PortalPlugIn.java:132)
at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:635)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:1264)
at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:132)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:1264)
at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:150)
at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:699)
at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:501)
at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:199)
at com.inqmy.services.httpserver.server.Response.handle(Response.java:159)
at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:802)
at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)
at com.inqmy.core.cluster.impl3.ParserRunner.run(ParserRunner.java:30)
at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:45)
at java.security.AccessController.doPrivileged(Native Method)
at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:126)
