Download Invocando un Componente PB en EAServer desde un Cliente EJB
Document related concepts
no text concepts found
Transcript
Invocando un Componente PB en EAServer desde un Cliente EJB Introducción Los componentes no-EJB (Enterprise Java Beans) pueden implementar diferentes interfaces remotas(1). Para hacer referencia a y utilizar una interfaz remota desde un cliente EJB, Ud. debe usar la interfaz home correspondiente. Use Jaguar Manager para crear una interfaz remota home para cada interfaz que el componente implementa. La interfaz home debe tener un solo método: "create" sin parámetros y que retorna la interfaz remota. En este ejemplo invocaremos un componente creado en PowerBuilder (No-EJB) e instalado en EAServer, desde una página JSP (que actuará como cliente EJB) Para mayor información, consulte el Capitulo 9 "EAServer EJB Interoperability" del manual "EAserver Programmers Guide" en su documentacion de "EAServer". Contenido Este documento contiene las siguientes secciones 1. 2. 3. 4. 5. Creando la interfaz home Generando los stubs EJB Creando un nuevo Target JSP (si no ha creado uno anteriormente) Creando la pagina JSP que invocará al componete Prueba de funcionalidad de la página 1. Creando la interfaz home Usando Jaguar Manager, conéctese como usuario Administrador (ej. jagadmin) y ubique el componente que desea invocar bajo el icono del servidor a usar. Seleccione el menú "File | Set Home Interface" Acepte el valor por defecto, que debe ser de la forma: module::component_interfaceHome Verifique que esta interfaz posea un único método denominado create, en caso de no ser así : - Seleccione en el menú "File | New Method" - Como nombre de método escriba "create". - En las propiedades del método defina qué retorna el nombre de la interfaz asociada, (ej : MyPackage::MyComponent) - En Exceptions Raised indique : CtsComponents::CreateException - Haga click en OK y cierre la ventana de propiedades del método. 2. Generando los stubs EJB Usando Jaguar Manager seleccione el servidor y en él el paquete para el cual generará los stubs Seleccione la opción del menú "Select File | Generate Stub/Skeleton". Seleccione la opción "Generate Stubs" y como tipo seleccione "EJB" Seleccione la opción "Generate Java files" Seleccione la opción "Compile Java Stubs" No modifique los demás parámetros y haga click en el boton Generate. Normalmente las clases java generadas quedan ubicadas en %JAGUAR%\html\classes, así que asegurase de que este directorio se encuentre incluida en la variable CLASSPATH cuando compile el cliente. 3. Creando un nuevo Target JSP (si no ha creado uno anteriormente) Inicie PowerBuilder (versión 9) y cree un nuevo workspace. En el menú "Tools | EAServer Profile" asegúrese de configurar su servidor EAServer (normalmente en puerto 9000 y usuario jagadmin). Pruebe dicha conexión. En el nuevo workspace, usando el menú "File | New" cree un nuevo target de tipo "JSP Target". Siga el asistente y no modifique los valores por defecto, con excepción de ... - En el campo "JSP Target" cambie SOLO el nombre del archivo PBT por el que Ud. desea en su caso: jsp_app1.pbt Como resultado final, el asistente debió generar un una estructura el el system tree ("árbol a la izquierda") en donde Ud. creará la estructura de la aplicación Web. Observe que puede importar archivos como páginas HTML, imágenes y otros recursos en el target, simplemente haciendo click con el botón derecho del ratón, y seleccionando las opciones de importación. 4. Creando la pagina JSP que invocará al componete Haga click derecho sobre el árbol del sistema (system tree), sobre el target JSP y seleccione "New", en el asistente seleccione "Web/JSP page" Siga el asistente y no modifique los valores por defecto, con excepción de ... - Titulo : nombres_autores - En el painter de edición de html, en el panel inferior, haga click derecho y en el menu desplegable seleccione "New Script - Server - JSP - <%...%>" - En la edición de la pagina debería aparecer un símbolo de server script similar a <%>, selecciónelo y en el código codifique: try { String nom ="",cod=""; java.util.Properties props = new java.util.Properties(); props.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY,"com.sybase.ejb.InitialContextFactory"); props.put(javax.naming.Context.PROVIDER_URL,"iiop://host:9000"); props.put(javax.naming.Context.SECURITY_PRINCIPAL,"jagadmin"); props.put(javax.naming.Context.SECURITY_CREDENTIALS,""); javax.naming.InitialContext ctx= new javax.naming.InitialContext(props); pack1.n_comp1Home home = (pack1.n_comp1Home)ctx.lookup("pack1/n_comp1"); pack1.n_comp1 comp = home.create(); cod=request.getParameter("cod"); nom= comp.get_author_name(cod); out.println( "El nombre del autor es : <B>"+nom+"</B>"); } catch (Exception ex) { ex.printStackTrace(); } - Tenga en cuenta que debe cambiar las propiedades host, puerto, usuario, entre otras para que este script se ajuste a su ambiente. - El anterior script invocaría a un método get_author_name ubicado en un componente n_comp1 de un paquete pack1. En este ejemplo se usa el componente creado en el documento Creación de un Componente de EAServer con PowerBuiler. Cierre el painter de edición, haga click derecho sobre el target JSP y realice el "Deploy" de este target. 5. Prueba de funcionalidad de la página Asegurase de que el servidor EAServer esta iniciado. Abra su browser de Internet e indique el siguiente URL (para este caso, pasaremos un argumento cod cuyo valor es un código de autor como 172-32-1176) http://<maquina>:8080/jspdemo1/nombres_autores.jsp?cod=172-32-1176 (1) En un modelo distribuido de objetos, un objeto remoto es aquel cuyos métodos pueden ser invocados desde otro componente cliente, potencialmente sobre una máquina diferente. Un objeto de éste tipo es descrito por una o más interfaces remotas, que son las declaraciones de los métodos del objeto remoto, en donde reside la implementación real de la lógica. Atributos del Documento Resumen: Este documento describe los pasos necesarios para invocar un componente PowerBuilder en EAServer desde un cliente EJB. Código: 10144 Última Modificación: May 22, 2003 Temas: Programación Tipo de Documento: Documento Técnico Productos: EAServer, PowerBuilder Versión: 4.2.x, 9.x Sistema Operativo: Todos los Sistemas Operativos Plataformas: Todas las Plataformas