miércoles, 9 de junio de 2010

próximo curso/master en programación java j2ee

Aquí os dejo los detalles del próximo curso/master en programación java j2ee, en breve comenzará a impartirse en la CEA - Sevilla. Es de formación profesional ocupacional y ...todavía hay plazas!

DESARROLLO DE APLICACIONES EN JAVA J2EE

Número del curso: 41-148

Código de especialidad: IFCI17
Duración: 900 horas
Horario: 15:00 - 21:00 horas
Número de alumnos: 16
Nivel de estudios: BACHILLER, FP II o equivalente
Rama o especialidad: INFORMÁTICA Y COMUNICACIONES
Localidad SEVILLA
Lugar de impartición: CEA - Confederación de Empresarios de Andalucía
Prácticas/Proyecto: Prácticas

Contenidos Orientativos:
ENTORNO DE DESARROLLO INTEGRADO: ECLIPSE IDE PARA DESARROLLO JAVA EE
DESARROLLO DIRIGIDO POR PRUEBAS (TDD - TEST DRIVEN DEVELOPMENT)
PROGRAMACIÓN ORIENTADA A OBJETOS (POO)
PROGRAMACIÓN ORIENTADA A EVENTOS (POE)
DESARROLLO DE COMPONENTES WEB CON TECNOLOGÍA JAVA
DESARROLLO DE APLICACIONES J2EE
ACCESO A BASE DE DATOS. HIBERNATE
INTRODUCCIÓN A EJB3 Y SU RELACIÓN CON LAS NOVEDADES APORTADAS DESDE LA VERSIÓN DE JAVA 5
FUNDAMENTOS DEL LENGUAJE DE PROGRAMACIÓN JAVA
PROGRAMACIÓN JAVA
NORMATIVA JURÍDICA EN NUEVAS TECNOLOGÍAS
INGLÉS
ORGANIZACIÓN Y ESTRUCTURA EMPRESARIAL
TÉCNICAS DE INFORMACIÓN Y COMUNICACIÓN (T.I.C.)
PREVENCIÓN DE RIESGOS LABORALES
INSERCIÓN LABORAL Y TÉCNICAS DE BÚSQUEDA DE EMPLEO
SENSIBILIZACIÓN AMBIENTAL
IGUALDAD DE OPORTUNIDADES
SEMINARIO


Si deseas obtener más información sobre este cursos puedes contactar a través del teléfono o de la siguiente dirección de correo electrónico: 
Teléfono: 954 48 89 83 / 954 48 89 24 / 954 48 89 17 
E-mail: infocursocea@cea.es

lunes, 4 de mayo de 2009

Resumen para curriculum

Systemas operativos: Windows
Lenguajes de programación:Java J2EE
Bases de datos: MySQL. Utilizo habitualmente Hibernate para mapeo O-R.
Programación Web: CSS

IDE's: Eclipse. Plugins de eclipse: subclipse(subversion), testng, jboss, m2eclipse(maven)
Servidores Web: Tomcat y Jetty
Servidores de aplicaciones: JBoss
Frameworks de desarrollo web en java: Servlets, JSP, JSTL, Struts, SpringFramework, JBoss Seam, JSF, EJB

Frameworks de pruebas: TestNG, Mockito

Herramientas de automatización y estandarización en el desarrollo: Ant, Maven, Subversion, log4j, commons-logging



Contenido del master en java j2se y j2ee
Desarrollo de Componentes Web Con Tecnología Java (84 Horas)
  • Introducción al desarrollo de Aplicaciones Web con Java
  • introducción al Control de Versiones utilizando la herramienta Subversion
  • introducción a la POO (Programación Orientada a Objetos) a través del estudio del framework de colecciones de java y su comprobación a través de pruebas con testNG
  • introducción a las excepciones, su diseño y su gestión en un programa
  • introducción al seguimiento del programa por consola (logging) y configuración. Uso de la herramienta Log de la librería commons-logging y log4j de Apache
  • introducción a Apache ANT: herramienta de automatización de tareas en el desarrollo
  • introducción al api jdbc: Java Data Base Connectivity
  • profundización en el uso y creación de anotaciones
  • introducción a la herramienta MAVEN: herramienta de estandarización del desarrollo (automatización de tareas) en proyectos java, destacando la gestión de dependencias
  • servidores web
  • desarrollo de servlets modelo 1 :listeners, filters, servlets
  • introducción a JSP - Java Server Pages. Modelo 2 de desarrollo con Servlets
  • introducción a JSTL - Java Standar Tag Library
  • introducción al patrón de desarrollo Controlador Frontal
  • introducción al patrón de desarrollo MVC - Modelo Vista Controlador


Desarrollo de Aplicaciones J2EE (56,50 Horas)
  • Arquitectura J2EE.
  • servidores de aplicaciones
  • introducción a Struts 1
  • introducción a EL - Expression Language
  • introducción a la internacionalización de aplicaciones
  • introducción a SiteMesh - Patrón Filtro Decorador
  • introducción a Hibernate "con XML"
  • introducción a Spring
  • introducción a DI - Inyección de Dependencias
  • introducción a JSF Java Server Faces



Acceso a Base de Datos. Hibernate (42 Horas)
  • Persistencia de Objetos
  • Configuración de Hibernate
  • Introducción a un proyecto con Hibernate
  • API
  • Propiedades De Hibernate
  • HQL - Hibernate Query Language
  • Hibernate Criteria Query
  • Persistencia De Colecciones

Desarrollo Aplicaciones De Negocio Enterprise JavaBeans (73,50 Horas)
  • Análisis de los componentes EJB
    • Session Beans.
      • stateless
      • statefull
    • Entity Beans.
    • MDB.
  • ciclo de vida y contextos de EJB
  • Uso del lenguaje de consulta de EJB (EJB QL)
  • Implementación de transacciones
  • Manejo de excepciones
  • Implementación de la seguridad
  • introducción a JBoss Seam como herramienta de integración de JSF y EJB

lunes, 20 de abril de 2009

Seam: CarritoCompra

package org.domain.seamcea2.session;

import javax.persistence.EntityManager;

import org.jboss.seam.Component;
import org.jboss.seam.annotations.intercept.AroundInvoke;
import org.jboss.seam.intercept.InvocationContext;
import org.jboss.seam.security.Identity;
import org.jboss.seam.security.NotLoggedInException;

public class Espia {

@AroundInvoke
public Object meDaIgual(InvocationContext llamadaMetodo)
throws Exception {





String nombreMetodoInvocado = llamadaMetodo.getMethod().getName();
Object[] parameters = llamadaMetodo.getParameters();
Object resultadoAccion = llamadaMetodo.proceed();
ListaDiscoBean listaDiscoBean =
(ListaDiscoBean) llamadaMetodo.getTarget();
Disco discoSelccionado=listaDiscoBean.discoSelccionado;


if(nombreMetodoInvocado.equals("incluye")){
EntityManager entityManager = (EntityManager) Component
.getInstance("entityManager");
Estadistica stadistica=new Estadistica();
stadistica.setDisco(discoSelccionado);
entityManager.persist(stadistica);

}
return resultadoAccion;
}

}




package org.domain.seamcea2.session;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.jboss.seam.annotations.intercept.Interceptors;

import sun.reflect.annotation.AnnotationType;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Interceptors(Espia.class)
public @interface EspiaAnotacion {

}



Aplicar la inyección de dependencias al carrito de la compra

Convertir un Entity en un Bean accesible por su nombre (desde la vista y desde otros beans) de la aplicación

(Pagina 152 tutorial de seam)Interceptar el carrito para implementar estadisticas y seguridad de forma transparente

Generar consultas JPQL para saber los detalles de las entidades relacionadas con disco y estadistica

viernes, 17 de abril de 2009

Request-JSF-Seam

Problematica de recuperar parametros

Solucion casi igual a Servlets
@RequestParameter(value="nombreParametro")
Long id;

Solucion orientada a objetos aprovechando JSF e inyeccion de dependencias
Binding de HtmlDataTable y aprovechar el metodo datatable.getRowData() para obtener el objeto de la fila actual...

Solucion Seam .... @DataModel @DataModelSelection

Carrito compra-> inyeccion

miércoles, 15 de abril de 2009

calendar/time pattern

info recogida de: http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html






















Letter
Date or Time Component
Presentation
Examples
G
Era designator
Text
AD
y
Year
Year
1996; 96
M
Month in year
Month
July; Jul; 07
w
Week in year
Number
27
W
Week in month
Number
2
D
Day in year
Number
189
d
Day in month
Number
10
F
Day of week in month
Number
2
E
Day in week
Text
Tuesday; Tue
a
Am/pm marker
Text
PM
H
Hour in day (0-23)
Number
0
k
Hour in day (1-24)
Number
24
K
Hour in am/pm (0-11)
Number
0
h
Hour in am/pm (1-12)
Number
12
m
Minute in hour
Number
30
s
Second in minute
Number
55
S
Millisecond
Number
978
z
Time zone
General time zone
Pacific Standard Time; PST; GMT-08:00
Z
Time zone
RFC 822 time zone
-0800

Seam: JSF+EJB

Practica de componentes JSF a través de edición de Disco. Comenzamos solo editando nombre para después utilizar
  • componente calendario para editar la fecha del Disco
  • componente selectOneMenu para editar el Cantante del Disco
  • componente validador para validar que la fecha del Disco siempre sea anterior al día actual
  • conversores
  • binding e inyección de ejbs dentro de bindings
  • listeners en JSF: ActionEvent y ValueChangeEvent
Componente CarritoCompra (Mantener en session información de usuario y detallarla)


gestión de Excepciones en Seam

i18n en Seam

Tests en Seam



Debugear una aplicación java

lunes, 13 de abril de 2009

SeamFramework=EJB3+JSF(Richfaces)

Richfaces es una implementacion de jsf

gettingstartedwithjbosstools

java.net.BindException: Address already in use: JVM_Bind.

  1. Localizar el proceso que ocupa el puerto con el comando: netstat -a -n -o
  2. finalizar el proceso desde el administrador de porcesos/tareas

domingo, 29 de marzo de 2009

JSF un framework orientado a componentes y eventos

glassfish y jetty

otro servidor de aplicaciones: glassfish (de sun)
¿cómo instalar el plugin para eclipse?

instalar el servidor jetty
seguir el mismo procedimiento de instalacion de plugin
incluir librerias de cliente


cambio de configuracion de plugin de jetty para que arranque en otro puerto

<plugin>

<groupId>org.mortbay.jetty</groupId>

<artifactId>maven-jetty-plugin</artifactId>

<version>6.0.1</version>

<configuration>


<scanIntervalSeconds>1</scanIntervalSeconds>

<connectors>

<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">

<port>9090</port>

<maxIdleTime>60000</maxIdleTime>

</connector>

</connectors>

</configuration>

</plugin>

miércoles, 25 de marzo de 2009

jsf

Ejercicio Registro de usuario utilizando JSF...
  1. secuencia de pantallas de registro simulando regla de negocio
  2. arrancar JPA(Hibernate) con modelo de Usuario
  3. crear un EJB que conecte con JPA y realice busquedas
  4. inyectar ej EJB remoto en la aplicación JSF


Proyecto jsf1

intro a jsf
jsf api y doc



Crear nuevo proyecto jsf con maven y eclipse...
new maven project
no create a simple project (no skip archetype selection)
catalog internal
filter: jsf
softeu-archetype-jsf

descargas: http://code.google.com/p/cursoj2ee/downloads/list

org.hibernate.Session o javax.persistence.EntityManager

Contextualización de Hibernate ORM en un servidor servlets

EntityBeans->Cap 08

EntityManager-> 09


Java Persistence API, más conocida por su sigla JPA, es la API de persistencia desarrollada para la plataforma Java EE e incluida en el estándar EJB3. Esta API busca unificar la manera en que funcionan las utilidades que proveen un mapeo objeto-relacional. El objetivo que persigue el diseño de esta API es no perder las ventajas de la orientación a objetos al interactuar con una base de datos, como sí pasaba con EJB2, y permitir usar objetos regulares (conocidos como POJOs).


lunes, 23 de marzo de 2009

Acceso a Base de Datos. Hibernate

Modelo de negocio para implementar en ejemplos...
Productora, Disco, Cancion,
Grupo Musica, Musico, Pedido, Cliente

Problemas a resolver por un ORM


Arranque (y configuración) de Hibernate
Propiedades De Hibernate (Session y SessionFactory)

Opciones para mapeo de clases persistentes con hibernate:

Lenguajes disponibles de consultas con hibernate:

Mejorar rendimiento:

Documentacion:

martes, 10 de marzo de 2009

mirrors de maven

<mirror>

<id>ibiblio.org</id>

<name>ibiblio Mirror of http://repo1.maven.org/maven2/</name>

<url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url>

<mirrorOf>central</mirrorOf>

</mirror>

<mirror>

<id>jboss-repository-mirror</id>

<name>jboss-repository</name>

<url>http://repository.jboss.org/maven2</url>

</mirror>

<mirror>

<id>rodcoffin</id>

<name>rodcoffin</name>

<url>http://maven.rodcoffin.com/repo</url>


</mirror>

<mirror>

<id>struts</id>

<name>struts</name>

<url>http://people.apache.org/repo/m2-snapshot-repository</url>


</mirror>

SpringFramework

http://groups.google.com/group/eticom-master-java/web/spring

lunes, 9 de marzo de 2009

Struts2 y SpringFramework

Inyección de dependencias con Spring: proyecto spring-di

Demostración de la factoria de objetos que representa Spring, y la inyección de dependencias indicada en el applicationContext.xml



En Struts2 se utiliza Spring para inicializar la factoria de sessiones y la session e inyectarla en la acción correspondiente...
http://code.google.com/p/cursoj2ee/source/detail?r=184

... y todavia quedaria abrir y cerrar las transacciones... (lo hará spring también)


en repo: struts2 y spring-di

viernes, 6 de marzo de 2009

Mockito: Test de caja blanca - de comunicación entre objetos

copiar /serverad/mockito en C:\Documents and Settings\javaape\.m2\repository\org


incluir la dependencia en nuestro pom.xml de mockito-all

mirar los ejemplos de test de acciones de struts en repo
http://code.google.com/p/cursoj2ee/source/detail?r=179




Mockito 1.7

http://code.google.com/p/mockito/

mockito-core:

  <groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.7</version>

mockito-all:

  <groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.7</version>




*** IMPORTS STATICS

ANT - Automatizacion de tareas en el desarrollo

repo: ant-ejemplos

http://ant.apache.org/manual/tasksoverview.html

http://groups.google.com/group/eticom-master-java/web/ant

http://www.chuidiang.com/java/herramientas/ant.php


Ejercicios:
  1. realizar con ant una estructura de directorios tipica de una aplicacion web en java
  2. desplegar una aplicación web java a nuestro servidor tomcat realizando las siguientes tareas: compilar, empaquetar, desplegar

jueves, 5 de marzo de 2009

RUBY y RUBYONRAILS

Para programadores con inquietudes... probar este lenguaje...
RUBY
(un lenguaje entre php y java)
http://www.ruby-lang.org/es/
Prueba a programar con ruby utilizando tu navegador.... http://tryruby.hobix.com/

RUBYONRAILS para desarrollo WEB
http://www.rubyonrails.org.es/

Struts2 Introduccion

Creación desde consola de un nuevo proyecto struts2 utilizando el comando maven archetype:create enlace
  • cd workspace
  • mvn archetype:create -DgroupId=es.cea -DartifactId=struts2 -DarchetypeGroupId=org.apache.struts -DarchetypeArtifactId=struts2-archetype-starter -DarchetypeVersion=2.0.5-SNAPSHOT -DremoteRepositories=http://people.apache.org/repo/m2-snapshot-repository
  • cd struts2
  • mvn eclipse:eclipse
  • para arrancar la aplicacion en un servidor podemos utilizar jetty o tomcat: mvn jetty:run ó mvn tomcat:run
  • http://localhost:8080/struts2


En Eclipse:
  • abrimos el proyecto en eclipse
  • mavenizamos el proyecto
  • comparamos las vistas de navigator y proyect explorer en perspectiva java ee

Cambios struts2 respecto a struts1
  • la peticion struts antes era .do y ahora pasa a ser .action


integrando con hibernate http://www.zabada.com/tutorials/spring-and-hibernate-integration.php