Sunteți pe pagina 1din 3

Invocando un Componente PB en EAServer desde un Cliente EJB

Introduccin

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 mtodo: "create" sin parmetros y que retorna la interfaz remota. En este ejemplo invocaremos un componente creado en PowerBuilder (No-EJB) e instalado en EAServer, desde una pgina JSP (que actuar como cliente EJB) Para mayor informacin, consulte el Capitulo 9 "EAServer EJB Interoperability" del manual "EAserver Programmers Guid 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 pgina

1. Creando la interfaz home



Usando Jaguar Manager, conctese 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 mtodo denominado create, en caso de no ser as : - Seleccione en el men "File | New Method" - Como nombre de mtodo escriba "create". - En las propiedades del mtodo 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 mtodo.

2. Generando los stubs EJB


Usando Jaguar Manager seleccione el servidor y en l el paquete para el cual generar los stubs Seleccione la opcin del men "Select File | Generate Stub/Skeleton". Seleccione la opcin "Generate Stubs" y como tipo seleccione "EJB" Seleccione la opcin "Generate Java files" Seleccione la opcin "Compile Java Stubs" No modifique los dems parmetros 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 (versin 9) y cree un nuevo workspace. En el men "Tools | EAServer Profile" asegrese de configurar su servidor EAServer (normalmente en puerto 9000 y usuario jagadmin). Pruebe dicha conexin. 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 excepcin 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 aplicacin Web. Observe que puede importar archivos como pginas HTML, imgenes y otros recursos en el target, simplemente haciend click con el botn derecho del ratn, y seleccionando las opciones de importacin.

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 excepcin de ... - Titulo : nombres_autores - En el painter de edicin de html, en el panel inferior, haga click derecho y en el menu desplegable seleccione "New Script - Server - JSP - <%...%>" - En la edicin de la pagina debera aparecer un smbolo de server script similar a <%>, seleccinelo y en el cdigo 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 invocara a un mtodo get_author_name ubicado en un componente n_comp1 de un paquete pack1. En este ejemplo se usa el componente creado en el documento Creacin de un Componente de EAServer con PowerBuiler.

Cierre el painter de edicin, haga click derecho sobre el target JSP y realice el "Deploy" de este target.

5. Prueba de funcionalidad de la pgina


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 cdigo 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 mtodos pueden ser invocados desde otro componente cliente, potencialmente sobre una mquina diferente. Un objeto de ste tipo es descrito por una o ms interfaces remotas, que son las declaraciones de los mtodos del objeto remoto, en donde reside la implementacin real de la lgica.

Atributos del Documento


Resumen: Este documento describe los pasos necesarios para invocar un componente PowerBuilder en EAServer desde un cliente EJB. Cdigo: 10144 ltima May 22, 2003 Modificacin: Temas: Programacin Tipo de Documento Tcnico Documento: Productos: EAServer, PowerBuilder Versin: 4.2.x, 9.x Plataformas: Todas las Plataformas Sistema Todos los Sistemas Operativo: Operativos

S-ar putea să vă placă și