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