Integración Capa Web de pojo-miniportal (1)



Documentos relacionados
Integración Capa Web de pojo-miniportal (1)

Ejercicios de validación e internacionalización

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEBSERVICE

ATLAS MANUAL DE USUARIO SERVICIO DE TRAZAS

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEB CON DOCUMENTUM

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEB PARA PROYECTOS NEXUS

Oracle 12c DISEÑO Y PROGRAMACIÓN

Manual del Protocolo XML-RPC de Mensajería Negocios

ATLAS MANUAL DE USUARIO SERVICIO DE AUDITORIA

Práctica Java POJO de Integración de Sistemas Tienda de Comercio Electrónico

PowerPoint 2010 Hipervínculos y configuración de acciones

Tema 4: Diseño e Implementación de la Capa Web

Internet Information Server

Copias de Seguridad Automáticas para aplicaciones Productor.

Spring. Sesión 7: Seguridad con Spring Security. Experto Universitario Java Enterprise

Ejercicios - Persistencia en Android: proveedores de contenidos y SharedPreferences

Dossier de prácticas

ESTÁNDAR DE CODIFICACIÓN JEE CHECKLIST

1

Práctica Java POJO de Integración de Sistemas Sitio Web de Apuestas Deportivas

Tema 4: Tecnologías Web Java

Administración Local Soluciones

ALTAS MANUAL DE USUARIO DEL SERVICIO DE CERTIFICADOS

Administración Local Soluciones

Cursos de Extensión Universitaria UNIVERSIDAD DE OVIEDO. Servicios Web (II)

MANUAL DE LA CONFIGURACIÓN Y USO DEL MÓDULO DE ASM PARA PRESTASHOP

Formatos para prácticas de laboratorio

Ejercicios de AJAX y REST

Actualización del Cliente IFI

EJECUCIÓN DE TRAZA CIDE REMOTO EN EQUIPOS CON JAVA VERSIÓN 7.x y 8.x

CREACIÓN DE WEBSERVICES

Introducción al lenguaje Java

UNIVERSIDAD DE OVIEDO

Práctica 1: Instalación de un servidor de aplicaciones web y diseño de la vista de una aplicación

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

Person IP CRM Manual MOBILE

Manual trámite telemático para la presentación de la RELACIÓN NOMINAL DEL PERSONAL DOCENTE

Configuración servidor Tomcat

EXPORTACIÓN E IMPORTACIÓN EN OPENCMS6

CÓMO CREAR UNA PÁGINA WEB

MIGRACIÓN NEXUS 8 A A3ERP 9

MANUAL DE LA CONFIGURACIÓN Y USO DEL MÓDULO DE ASM PARA PRESTASHOP

Dossier de prácticas

Sistemas de Información 12/13 Servlets y JSPs (Java Server Pages)

Instalación. Interfaz gráfico. Programación de Backups. Anexo I: Gestión de la seguridad. Manual de Usuario de Backup Online 1/21.

Análisis preliminar. Requisitos Técnicos Portal de Proveedores de Gas Natural Fenosa

Ejercicios - Persistencia en Android: ficheros y SQLite

GUÍA TÉCNICA. Desarrollo de Proyectos en Plataforma Liferay en el Gobierno de Extremadura

Manual de usuario de IBAI BackupRemoto

Parte 3 - Consultas SQL + Servicios Web + Índices

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

Escuela Politécnica Superior de Elche

Instalación Tacotel Lector Documentación Sistemas

Práctica de introducción a

Arturo Cepeda Pérez. Software Engineering Tutor MANUAL DE INSTALACIÓN Y CONFIGURACIÓN

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa

Requisitos. Universidad ORT Arquitectura de Software

MANUAL DE INSTALACIÓN CONFIGURACIÓN Y GESTIÓN DE CERTIFICADOS EN MOZILLA FIREFOX. Agencia Tributaria INFORMÁTICA TRIBUTARIA

Consultoría, Análisis, Desarrollo y Mantenimiento de Software. Guía de Usuario V2.1. Junio 2.004

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd

Sesiones en PHP. Área de Ingeniería Telemática

Figura 7-1 Enlace para instalar el servidor web Apache Jakarta Tomcat

MANUAL DE LA CONFIGURACIÓN Y USO DEL MÓDULO DE ASM PARA OPENCART

Manual de Integrador.NET

Ministerio de Educación,Cultura y Deporte. Aulas en Red. Windows. Módulo 2: Servicios Básicos. DNS

Sede electrónica. Requisitos para la firma electrónica en este Ministerio

E Manual de usuario. : Versión: 0.1 Fecha: 05/02/2013 Autor: Carlos Ors Carlos.ors@tecsidel.es

Para este caso vamos a suponer que son los siguientes:

Cuando hacemos uso de los grupos, se tendrán los permisos asignados al grupo, en todas las carpetas y documentos del sitio.

Marta Soler Tel: Fax: TUTORIAL DEL GESTOR DE CONTENIDOS DOTNETNUKE

Tutorial Servicios Web

UNIVERSIDAD DE OVIEDO

Bases de Datos. Marta Elena Zorrilla Pantaleón Rafael Duque Medina DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN

Servidor Apache 1. Instalación de apache

Introducción al desarrollo web (idesweb)

Servidor web E-Sniper

SERVIDOR WEB. Servidores web IIS (Windows) / Apache (Windows y Linux)

MANUAL DE INSTALACIÓN DEL COMPONENTE WEBSIGNER ACTIVEX. Versión 4.0

Programación orientada a objetos

Squipy v Introducción

Introducción a la plataforma Moodle Aníbal de la Torre Plataforma Moodle. Accediendo a los contenidos

Mybatis: alternativa a Hibernate

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

Curso de Spring Framework

Instalación de Apache y sus módulos

Generación de código para Hibernate desde modelos UML

1. Posicionarse en la vista Services y seleccionar el ítem Servers. En el menú contextual del Mouse seleccionar la opción Add Server

Manual de usuario Versión: 1.3 Edición: 05/02/2015 1

Seguridad y control de tu PC

GUIA DE LABORATORIO N 8 A(Netbeans-java,Glassfish)

Manual Intranet Área de Sistemas

Índice de contenido. Manual de administración de hospedaje para administradores de dominios

Fundamentos de Programación

Escrito por Renan Huanca Sábado, 28 de Febrero de :46 - Actualizado Sábado, 28 de Febrero de :09

PLATAFORMA DE VISADO TELEMÁTICO.

IT 4148: Gestión de Sistemas en. Práctica I Departamento de Ingeniería Informática

Lección 1 Introducción a Struts. uacosta@globalmentoring.com.mx

Transcripción:

Integración Capa Web de pojo-miniportal (1) 1. Cambiar tipo de proyecto maven de "JAR" a "WAR 2. Añadir dependencias del API de Tapestry 3. Añadir configuración del plugin de Jetty al pom.xml 4. Añadir el fichero src/main/jetty/jetty-env.xml a la estructura de vuestro proyecto. En ese fichero se define el nombre del DataSource que Jetty pone accesible por JNDI. La configuración no hace falta tocarla si se utilizan profiles como en los ejemplos (se usan variables). 5. En el pom.xml del proyecto, en la parte de filtrado de recursos, modificar la ruta al fuente de jetty-env.xml (ahora no hacen falta los "../ por no tener submódulos) 6. Añadir a vuestro fichero de configuración de Spring en src/ main/resources la definición de un DataSource que acceda al del servidor de aplicaciones (ver cómo se hace en pojominiportal) 7. Copiar src/main/webapp a vuestro proyecto, actualizando en WEB-INF/web.xml la referencia al fichero de configuración de Spring y el paquete base de la capa Web de vuestro proyecto

Integración Capa Web de pojo-miniportal (2) 8. Copiar de src/main/java todo lo que cuelga de es.udc.pojo.miniportal.web a vuestro proyecto, excepto es.udc.pojo.miniportal.web.pages.user (se irán copiando más adelante) 1. Hay que adaptar la clase SessionDispatcher para que trabaje con el UserService de vuestro proyecto 9. Copiar de src/main/resources todo a vuestro proyecto, excepto los ficheros de configuración de Spring e Hibernate y lo que cuelga de es.udc.pojo.miniportal.web.pages.user 10. Cambiar Layout.tml para que no haya enlaces a páginas que no existen (de momento). E.g. haciendo que apunten todas a Index. 11. Arrancar Jetty (mvn jetty:run) y comprobar que es posible acceder a la página principal (http://localhost:9090/ <<proyecto>>) 12. Integrar el resto de páginas (una cada vez)

Integración Capa Web de pojo-miniportal (3) Además, hay que tener en cuenta Habilitación del patrón Patrón Open Session In View Basta proceder como se indica en los ficheros src/main/webapp/ WEB-INF/web.xml y src/main/resources/pojo-miniportalspring-config.xml de pojo-miniportal Bases de datos de pruebas y de ejecución de aplicaciones En pojo-examples se usan dos bases de datos: una para pruebas (test) y otra para la ejecución de aplicaciones De esta manera, la ejecución de una aplicación no afecta a las pruebas, y viceversa Para crear los datos que necesita la aplicación para poder funcionar (e.g. categorías y productos en una tienda de comercio electrónico) Crear un script SQL (e.g. src/sql/2-createdata.sql) que introduzca los datos necesarios mediante sentencias INSERT INTO Integrar el script en el pom.xml (plugin SQL-> configuración no ligada a una fase) de manera que se ejecute cuando se teclea mvn sql:execute 3

Integración Capa Web de pojo-miniportal (4) Además, hay que tener en cuenta (cont) Bases de datos de pruebas y de ejecución de aplicaciones (cont) <plugin> <groupid>org.codehaus.mojo</groupid> <artifactid>sql-maven-plugin</artifactid>... <configuration> <driver>${jdbcdriver.classname}</driver>... <orderfile>ascending</orderfile> <fileset> <basedir>${basedir}</basedir> <includes> <include>src/sql/1-createtables.sql</include> <include>src/sql/2-createdata.sql</include> </includes> </fileset> </configuration> 4

Integración Capa Web de pojo-miniportal (y 5) Además, hay que tener en cuenta (cont) Bases de datos de pruebas y de ejecución de aplicaciones (cont) <executions> <execution> <id>create-tables-for-testing</id> <phase>process-test-resources</phase> <goals> <goal>execute</goal> </goals> <configuration>... <fileset> <basedir>${basedir}</basedir> <includes> <include>src/sql/1-createtables.sql</include> </includes> </fileset> </configuration> </execution> </executions> </plugin> 5

Servicios XML (1) Se implementarán como páginas normales que generan XML en lugar de HTML Por defecto, el tipo de contenido que especifica Tapestry en las respuestas HTTP es text/html http://tapestry.apache.org/tapestry5/guide/content-type.html Los servicios XML deberían utilizar el tipo text/xml en las repuestas HTTP Es preciso usar la anotación @org.apache.tapestry5.annotations.contenttype sobre la clase página Ejemplo @ContentType("text/xml") public class XmlService { //... } 6

Servicios XML (2) Paso de parámetros El mecanismo habitual para pasar parámetros a una página es el uso del contexto de activación Ejemplo de invocación por GET http://.../xmlservice/1/hello Clase página @ContentType("text/xml") public class XmlService { //... void onactivate(int par1, String par2) { } //... //... } 7

Servicios XML (3) Paso de parámetros (cont) En el caso de parámetros de tipo String o Character, Tapestry necesita codificar algunos caracteres de forma especial, como por ejemplo el espacio en blanco, vocales con tilde, ñ s,etc., dado que en otro caso la URL no estaría en un formato legal Por ejemplo, si el segundo parámetro del ejemplo anterior fuese hello world, sería preciso emplear la URL http://.../xmlservice/1/hello$0020world La codificación que utiliza Tapestry, aunque legal, no sigue ningún estándar, por lo que no resulta conveniente usar el contexto de activación como mecanismo de paso de parámetros en un entorno de integración de aplicaciones con servicios XML 8

Servicios XML (4) Paso de parámetros (cont) Por ello, es más conveniente pasar los parámetros a la página como parámetros HTTP Ejemplo de invocación por GET http://.../xmlservice?par1=1&par2=hello Clase página @ContentType("text/xml") public class XmlService { //... @Inject private org.apache.tapestry5.services.request request; 9

Servicios XML (5) Paso de parámetros (cont) Clase página (cont) void onactivate() { String par1asstring = request.getparameter("par1"); String par2asstring = request.getparameter("par2"); //.. } Request.getParameter Devuelve el valor de un parámetro HTTP univaluado Si el parámetro no existe, devuelve null No realiza ningún tipo de conversión automáticamente: los valores se devuelven como String Request.getParameters Idem para parámetros multi-valuados 10

Servicios XML (6) Paso de parámetros (cont) Al realizar la invocación, los valores de los parámetros tienen que estar codificados según el formato MIME application/ x-www-form-urlencoded Ciertos caracteres (espacio en blanco, vocales con tilde, ñ s,etc.) se codifican de forma especial No es una restricción de Tapestry, sino la manera estándar de trabajar en HTTP con los valores de los parámetros Esto afecta a los parámetros de tipo String o Character Por ejemplo, si el segundo parámetro del ejemplo anterior fuese hello world, sería preciso usar el valor hello+world http://.../xmlservice?par1=1&par2=hello+world Si el cliente es Java, puede usar java.net.urlenconder para realizar la codificación encodedvalue = URLEnconder.encode(value, "UTF-8"); 11

Servicios XML (y 7) Si el cliente es.net, puede usar System.Web.HttpUtility encodedvalue = HttpUtility.UrlEncode(value, System.Text.Encoding.UTF8); Cuando se utiliza el navegador como cliente (para pruebas), hay que realizar la conversión a mano si el navegador no lo hace automáticamente E.g. En Firefox 2 para hacer la petición GET del ejemplo anterior habría que introducir http://.../xmlservice?par1=1&par2=hello+world E.g. En Firefox 3 sería posible introducir http://.../xmlservice?par1=1&par2=hello world En el lado servidor (en la clase página) no hay que realizar la decodificación La decodificación de los valores de los parámetros HTTP la hace automáticamente el contenedor de servlets 12

AJAX Introducción a AJAX El apartado 4 del enunciado de la práctica introduce el concepto de AJAX Ajax: A New Approach to Web Applications: http:// www.adaptivepath.com/ideas/essays/archives/000385.php http://www.tic.udc.es/~fbellas/teaching/is-2007-2008/ IntroduccionAJAX.pdf (transparencias 1-13) AJAX en Tapestry Screencast de Howard Lewis Ship demostrando cómo usar el componente Zone: http://tapestryjava.blogspot.com/ 2008/11/tapestry-5-ajax-screencast.html http://tapestry.apache.org/tapestry5/guide/ajax.html 13