miércoles, 9 de junio de 2010
próximo curso/master en programación java j2ee
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
Contenido del master en java j2se y j2eeSystemas 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, EJBFrameworks de pruebas: TestNG, Mockito
Herramientas de automatización y estandarización en el desarrollo: Ant, Maven, Subversion, log4j, commons-logging
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
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
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
| 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
- 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
gestión de Excepciones en Seam
i18n en Seam
Tests en Seam
Debugear una aplicación java
lunes, 13 de abril de 2009
java.net.BindException: Address already in use: JVM_Bind.
- Localizar el proceso que ocupa el puerto con el comando: netstat -a -n -o
- finalizar el proceso desde el administrador de porcesos/tareas
domingo, 29 de marzo de 2009
glassfish y jetty
¿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
- secuencia de pantallas de registro simulando regla de negocio
- arrancar JPA(Hibernate) con modelo de Usuario
- crear un EJB que conecte con JPA y realice busquedas
- 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
Productora, Disco, Cancion, Grupo Musica, Musico, Pedido, Cliente
Problemas a resolver por un ORM
- Lazy-loading http://www.hibernate.org/hib_docs/v3/reference/en-US/html/mapping.html
- colecciones (O-M, M-O, M-M) http://www.hibernate.org/hib_docs/v3/reference/en-US/html/associations.html
- Herencia http://www.hibernate.org/hib_docs/v3/reference/en-US/html/inheritance.html
Arranque (y configuración) de Hibernate
Propiedades De Hibernate (Session y SessionFactory)
Opciones para mapeo de clases persistentes con hibernate:
- XMLs http://www.hibernate.org/hib_docs/v3/reference/en-US/html/mapping.html http://groups.google.com/group/eticom-master-java/web/hibernate-sin-anotaciones
- Anotaciones: http://www.hibernate.org/hib_docs/annotations/reference/en/html/ http://groups.google.com/group/eticom-master-java/web/hibernate-basico
Lenguajes disponibles de consultas con hibernate:
- HQL - Hibernate Query Language (JPQL) http://www.hibernate.org/hib_docs/v3/reference/en-US/html/queryhql.html
- Hibernate Criteria Query http://www.hibernate.org/hib_docs/v3/reference/en-US/html/querycriteria.html
- codigo en repo: http://groups.google.com/group/eticom-master-java/web/hibernate---consultas-con-hql---hibernate-query-language
Mejorar rendimiento:
- implementando (y configurando ) caches de primer nivel y de segundo nivel http://www.hibernate.org/hib_docs/v3/reference/en-US/html/performance-cache.html
- configurando lazy loading http://www.hibernate.org/hib_docs/v3/reference/en-US/html/performance.html#performance-fetching
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>
lunes, 9 de marzo de 2009
Struts2 y SpringFramework
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/
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.7</version>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.7</version>
*** IMPORTS STATICS
ANT - Automatizacion de tareas en el desarrollo
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:
- realizar con ant una estructura de directorios tipica de una aplicacion web en java
- 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
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
- 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