viernes, 1 de abril de 2016

INDICE

JDBC,HIBERNATE  Y SPRING



 Instalacion del Jdk  Java Windows 7
Java Web: Problemas con el puerto 8080 
 Introduccion A los Orm
 JSP - Standard Tag Library (JSTL) Tutorial
 Patron Dao 
 Uso de JSTL

Hibernate Framework Introduccion




Java Web: Problemas con el puerto 8080

Java Web: Problemas con el puerto 8080 


Problema

El puerto 8080 lo utilizan por defecto los servidores JEE como GlassFish, Tomcat y JBoss para las aplicaciones Web.

Normalmente no deberíamos tener ningún problema si utilizamos uno de estos contenedores y trabajamos con MySQL (Puerto 3306) y SQL Server (Puerto 1433).

El problema se presenta en las siguientes situaciones:
  1. Si queremos utilizar dos servidores JEE al mismo tiempo en la misma maquina.
  2. Si queremos utilizar Oracle XE.

Solución

La solución está en configurar cada uno de estos servidores Java EE con un puerto diferente, en algunos casos se puede optar por cambiar el puerto de Oracle XE.

Cambiar el puerto de Oracle XE

1.- Cargamos la consola SQL*Plus
C:\Users\Gustavo> sqlplus /nolog

2.- Iniciamos sesión como super usuario.
SQL> connect / as sysdba
Connected.


3.- Verificamos el puerto actual.
SQL> select dbms_xdb.gethttpport from dual;

GETHTTPPORT
-----------
       8080

4.- Cambiamos el puerto a 8090.
SQL> begin
  2     dbms_xdb.sethttpport('8090');
  3  end;
  4  /

PL/SQL procedure successfully completed.

4.- Verificar el nuevo puerto.
SQL> select dbms_xdb.gethttpport  from dual;

GETHTTPPORT
-----------
       8090


Listo, Oracle XE ya no dará problemas.

Instalacion del JDK JAVA WINDOWS 7

 Instalacion del JDK  JAVA WINDOWS 7
Pues muchos me han pedido o me han preguntado como se instala el JDK en Windows 7, ya que anteriormente publiqué como se instalaba tanto para Windows XP y para Windows Vista.
El tutorial sigue siendo el mismo, claro algunas cosas pueden cambiar, veamos el tutorial:
Antes de empezar necesitamos descargar el Java Development Kit o mejor conocido como elJava JDK desde la página de Java o mejor dicho de la página de Sun.
Descargar  JDK – Java Development Kit
Una vez descargado dicho archivo, le damos doble clic para que empiece la instalación del mismo. Y nos aparecerá una pantalla como esta:
Leemos” el contrato de Usuario Final, y le damos Clic en Accept >
Si queremos cambiar la capeta de instalación le podemos dar clic en Change… e instalarla donde quiera, Yo la dejé en la ruta por default. Y después le damos Next.
Empezará la instalación del Java JDK y tendremos que esperar unos minutos, dependiendo del rendimiento de tu equipo de computo.
Al terminar la instalación del Java JDK, nos pedirá la carpeta de destino donde se tiene que instalar el JRE de Java, este es importante instalarlo, para que se ejecuten los programas hecho en Java.Yo dejé la ruta por defaultDamos Clic en Next >.
Empezará la instalación de Java JRE y dependerá del funcionamiento de nuestro equipo, cuanto dure esta instalación, por lo general dura unos pocos minutos.
Una vez que haya terminado la instalación del Java JRE, le daremos clic en Finish y terminará la instalación de Java JDK y Java JRE.
Todavía aquí no termina esto, si no que hay que configurar las variables de entorno para que podamos “compilar” desde la Consola de Comandos de Windows 7.
Damos Clic Derecho a Mi PC y nos vamos a Propiedades. Y nos aparecerá una ventana donde aparece la información de nuestro sistema, Damos clic en Configuración Avanzada del Sistema, que se encuentra a la izquierda. Y nos debe de aparecer una ventana como esta:
Nos vamos a la pestaña de Opciones Avanzadas y damos clic en Variables de Entorno
Buscamos en las Variables del sistema, la variable llamada Path y le damos clic en Editar
Se abrirá una nueva ventana y le agregamos esto: ;C:\Program Files\VERSION DE TU JAVA\binsi es que dejamos la ruta por default del instalador, si lo metiste en otra carpeta, deberás poner la dirección donde se encuentra instalado el JDK. Y damos Clic en Aceptar.
Después ahi mismo en Variables del Sistema, crearemos una nueva variable llamada Classpath y tendrá la dirección de nuestro src.zip en este caso sería esta: ;C:\Program Files\Java\VERSION DE TU JAVA\src.zip y le damos clic en Aceptar.
Le damos Clic en Aceptar en Variables de Entorno y en la Ventana de Opciones Avanzadas.
Ahora nos iremos a la Consola de Comandos de Windows 7, o al famoso CMD, una vez abierto escribimos javac y deberá mostrar este contenido.
Y si se muestra esto, quedó instalado el Java JDK en nuestro sistema de Windows 7, y podemos crear los programas y compilarlos desde la consola de comandos. O lo que es mejor, instalar un IDE como Eclipse  o JCreator. En lo personal uso el Eclipse.

Introducción a los ORM

En este tema vamos a empezar a explicar qué ese un ORM e Hibernate , pero empecemos con los ORM.
Las siglas ORM significan “Object-Relational mapping” 1) y en castellano es “Mapeo Objeto-Relacional”.
 El ORM es simplemente el código que escribimos para guardar el valor de nuestras clases en una base de datos relacional. Simplemente éso.
Es decir, es un framework de persistencia de nuestros datos a una base de datos.
Veamos un ejemplo en el que suponemos que estamos desarrollando el programa Itaca para la consellería de educación: 

El programa tendrá la clase Profesor tal y como vemos en el siguiente diagrama UML:
PlantUML Graph
Pero los objetos de la clase Profesor finalmente se deberán guardar en filas de la tabla de la base de datos llamada Profesor:
PlantUML Graph
El código Java que, dado un objeto Profesor , genera una fila en la tabla Profesor o la borra o la actualiza, etc, es un ORM. Así de sencillo.
Ahora te estarás preguntando, ¿y para éso necesito un curso entero del? ¡Si yo llevo años haciendo eso con JDBC!.
Si pero:

  • ¿Y qué hay del código de JDBC cuando la clase Profesor incluye un java.util.Set o un java.util.List o simplemente herencia de otras clases.? 

  • Ese código no debe tocarse mientras no se deje la empresa ya que se corre el peligro de que nada vuelva a funcionar.

  • ¿Y de hacer las validaciones antes de guardarlo?¿No estas harto de comprobar que la propiedad nombre no está vacía? 

  • La próxima vez que compruebe que un String no es null y que tras hacer un trim() aún quedan caracteres me rapo el pelo y me hago budista.

  • ¿Recuerdas el día en el que el DBA 2) te pidió que cambiaras el nombre de varias columnas de la base de datos? 

  • Estuve semanas revisando el código para estar seguro de que no me había dejado ninguna línea sin cambiar. Al volver a casa mi hijo ya no me conocía.
Dejando a parte esta pequeña broma, usar JDBC directamente tiene muchos problemas. Lo normal es que para evitar toda esta repetición de código los programadores empecemos a hacernos nuestras utilidades que nos ahorran mucho esfuerzo. Estas utilidades son el principio de un ORM. Gavin King pensó lo mismo 3) y acabó haciendo Hibernate.
Es decir que Hibernate es simplemente una serie de clases Java 4) que nos ayudaran a insertar, leer, actualizar borrar nuestros objetos en la base de datos.

Hibernate

¿Cuál ha sido el éxito de Hibernate? Mi opinión es la siguiente:
  • No depende de estándares, lo que hace que pueda añadir funcionalidades mas rápidamente.
  • Al igual que JDO no es necesario implementar interfaces o heredar de clases.
  • Realiza sólo una cosa y la hace bien: Sólo se puede persistir a bases de datos relacionales, a diferencia de JDO que permite otros tipo de repositorios.

Hibernate

Después de dar un repaso a todas las tecnologías de persistencia, ¿Por qué un curso de Hibernate en vez de un curso de JPA? Realmente este curso trata de Hibernate e Hibernate con JPA con lo que vamos a tener lo mejor de ambos mundos.
Para hacer la persistencia de nuestros objetos Java a la base de datos hay que indicar cómo se debe realizar dicha persistencia. Para ello hay dos métodos:
  • Ficheros XML
  • Anotaciones en el código.
Las anotaciones que tiene Hibernate son actualmente las del estándar de JPA. De esa forma al ver las anotaciones de hibernate estaremos viendo las de JPA.Cuando veamos los ficheros XML usaremos los ficheros propietarios de Hibernate, así también veremos cómo funciona realmente Hibernate.
En cuanto al API de Java , vamos a ver únicamente el API de Hibernate.
¿Y por qué no dar sólo JPA sobre Hibernate ?
JPA sigue siendo un estándar de JCP , lo que conlleva un proceso lento de nuevas versiones y funcionalidades. Usando Hibernate directamente tendremos acceso a las funcionalidades específicas de Hibernate que no están cubiertas en el estándar de JPA y tampoco hay que ser tan estricto.
 Hibernate ha funcionado con éxito muchos años en Java sin necesidad de JPA, así que no vamos a perder ahora todas las ventajas de ofrece Hibernate frente a JPA.
Resumiendo , éste va a ser un curso de Hibernate en el que muchas de las cosas que expliquemos será usando el estándar de JPA.

SoapUI


SoapUI


SoapUI es una de código abierto aplicación de pruebas de servicios web para arquitecturas orientadas a servicios (SOA) y las transferencias de estado representacional (REST).

Su funcionalidad abarca web del servicio de inspección, invocación, el desarrollo, la simulación y la burla , pruebas funcionales, pruebas de carga y cumplimiento.

 Una versión comercial, SoapUI Pro , que se centra principalmente en características diseñadas para mejorar la productividad, también fue desarrollado por el software Eviware .

 En 2011, SmartBear Software adquirió Eviware. [ 2 ]

SoapUI fue lanzado inicialmente en SourceForge en septiembre de 2005. Se software libre , licenciado bajo los términos de la Licencia Pública de la Unión Europea

 Desde el lanzamiento inicial, SoapUI ha sido descargado más de 2.000.000 veces.

Está construido en su totalidad en la plataforma Java , y utiliza oscilación de la interfaz de usuario . Esto significa que SoapUI es multiplataforma .

Hoy en día, también es compatible con SoapUI IDEA , Eclipse y NetBeans .

SoapUI puede probar en SOAP y REST servicios web, JMS, AMF, así como realizar cualquier HTTP (S) y llamadas JDBC.

SoapUI

Las características principales incluyen:

inspección de los servicios Web
Los servicios Web que invoca
desarrollo de servicios Web
Los servicios Web de simulación y burlones
servicios web funcional, carga, cumplimiento y de seguridad
SoapUI Pro [ editar ]
SoapUI Pro es la versión de la empresa comercial. SoapUI Pro añade una serie de mejoras en la productividad al núcleo SoapUI, que están diseñados para aliviar muchas tareas recurrentes cuando se trabaja con SoapUI.

CaracterísticaBeneficio
la cobertura WSDLAnalizar los mensajes de petición / respuesta para ver lo bien que se está probando un contrato WSDL / burlado / usa.
refactorización WSDLactualizar automáticamente las peticiones / respuestas / afirmaciones cuando el WSDL subyacente.
proyectos de compositeTrabajar juntos en un equipo en sus proyectos de pruebas de servicios web.
La gestión de requisitosAdministrar, importación y exportación de los requisitos del proyecto y vincularlos a los casos de prueba.
editor solicitud basada en formulariosPara facilitar la edición y la comprensión de los mensajes de petición tanto para usuarios técnicos y no técnicos.
Descripción general visor de mensajesPara obtener una visión general de la / maqueta de petición / respuesta correspondiente mensaje supervisado.
solicitud editor basado en árbol / respuestaPara facilitar la navegación y la comprensión de los mensajes más grandes.
inspector de la tablaPara dar rápidamente una visión general del contenido del mensaje tabular.
inspector de esquemaPara facilitar la inspección y la depuración del contenido del mensaje.
inspector de XMLPara facilitar la inspección y la depuración del contenido del mensaje.
inspector de DocPara facilitar la comprensión del contenido del mensaje.
DataSource TestStepPara facilitar la creación de pruebas basadas en datos.
DataSink TestStepFacilita la recogida de datos a utilizar en las pruebas posteriores o para la presentación de informes externos.
DataGen TestStepPara simplificar las pruebas completa de interfaces complejas.
asistentes de transferencia de la propiedadPara facilitar la creación de casos de prueba complejos / flujos de mensajes.
XPath aserción WizardsPara facilitar la creación de afirmaciones XPath para los pasos TestRequest y MockResponse.
XPath WizardsFacilita la creación de expresiones XPath en muchas situaciones.
Los informes integradosProporcionar resúmenes de las pruebas funcionales para el seguimiento y la gobernabilidad.
biblioteca de scripts GroovyFacilita la reutilización y secuencias de comandos de escenarios complejos.
escritorio con pestañasFacilita la administración de escritorio con varios editores.
Descubrimiento de la APICapacidad para crear pruebas soapUI basado en el tráfico HTTP capturada que se generan a partir de las acciones del usuario (por ejemplo, de la navegación por un sitio web)

lunes, 28 de marzo de 2016

MVC MODELO VISTA CONTROLADOR

Modelo vista controlador (MVC)

Modelo Vista Controlador (MVC) es un estilo de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos.
Se trata de un modelo muy maduro y que ha demostrado su validez a lo largo de los años en todo tipo de aplicaciones, y sobre multitud de lenguajes y plataformas de desarrollo.
  • El Modelo que contiene una representación de los datos que maneja el sistema, su lógica de negocio, y sus mecanismos de persistencia.
  • La Vista, o interfaz de usuario, que compone la información que se envía al cliente y los mecanismos interacción con éste.
  • El Controlador, que actúa como intermediario entre el Modelo y la Vista, gestionando el flujo de información entre ellos y las transformaciones para adaptar los datos a las necesidades de cada uno.

El modelo es el responsable de:

  • Acceder a la capa de almacenamiento de datos. Lo ideal es que el modelo sea independiente del sistema de almacenamiento.
  • Define las reglas de negocio (la funcionalidad del sistema). Un ejemplo de regla puede ser: "Si la mercancía pedida no está en el almacén, consultar el tiempo de entrega estándar del proveedor".
  • Lleva un registro de las vistas y controladores del sistema.
  • Si estamos ante un modelo activo, notificará a las vistas los cambios que en los datos pueda producir un agente externo (por ejemplo, un fichero por lotes  que actualiza los datos, un temporizador que desencadena una inserción, etc.).

El controlador es responsable de:

  •  Recibe los eventos de entrada (un clic, un cambio en un campo de texto, etc.).
  • Contiene reglas de gestión de eventos, del tipo "SI Evento Z, entonces Acción W". Estas acciones pueden suponer peticiones al modelo o a las vistas. Una de estas peticiones a las vistas puede ser una llamada al método "Actualizar()". Una petición al modelo puede ser "Obtener_tiempo_de_entrega ( nueva_orden_de_venta )". 

Las vistas son responsables de:

  • Recibir datos del modelo y los muestra al usuario.
  • Tienen un registro de su controlador asociado (normalmente porque además lo instancia).
  • Pueden dar el servicio de "Actualización()", para que sea invocado por el controlador o por el modelo (cuando es un modelo activo que informa de los cambios en los datos producidos por otros agentes).

El flujo que sigue el control generalmente es el siguiente:
 Flujo MVC
  1. El usuario interactúa con la interfaz de usuario de alguna forma (por ejemplo, el usuario pulsa un botón, enlace, etc.)
  2. El controlador recibe (por parte de los objetos de la interfaz-vista) la notificación de la acción solicitada por el usuario. El controlador gestiona el evento que llega, frecuentemente a través de un gestor de eventos (handler) o callback.
  3. El controlador accede al modelo, actualizándolo, posiblemente modificándolo de forma adecuada a la acción solicitada por el usuario (por ejemplo, el controlador actualiza el carro de la compra del usuario). Los controladores complejos están a menudo estructurados usando un patrón de comando que encapsula las acciones y simplifica su extensión.
  4. El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de usuario. La vista obtiene sus datos del modelo para generar la interfaz apropiada para el usuario donde se refleja los cambios en el modelo (por ejemplo, produce un listado del contenido del carro de la compra). El modelo no debe tener conocimiento directo sobre la vista. Sin embargo, se podría utilizar el patrón Observador para proveer cierta indirección entre el modelo y la vista, permitiendo al modelo notificar a los interesados de cualquier cambio. Un objeto vista puede registrarse con el modelo y esperar a los cambios, pero aun así el modelo en sí mismo sigue sin saber nada de la vista. El controlador no pasa objetos de dominio (el modelo) a la vista aunque puede dar la orden a la vista para que se actualice. Nota: En algunas implementaciones la vista no tiene acceso directo al modelo, dejando que el controlador envíe los datos del modelo a la vista.
  5. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente.