Java Enterprise Edition 6 Java EE 6 (JSR 316) Diego E. Silva Límaco Apuntes de Java: http://apuntesdejava.blogspot.com
Antes.... Java EE  6 ¿? ¿? ¿? ¿? <ul><li>¿Tiene algo que ver con Java SE?
¿Qué es la versión 6?
¿Dónde se descarga? </li></ul>
<ul><li>Congreso hace leyes
Las leyes se aplican en todo el país
Algo ILEGAL es cuando no cumple con la ley
Las leyes mantenien el orden en un país </li></ul>Las especificaciones son  leyes  que establecen la manera uniforme de re...
public class  Implementac ión  implements  Especificación{ ... public class  TomcatServidorWeb  implements  ServidorWeb{ ....
JCP y JSR <ul><li>Java Community Process es el Congreso de Java  http://jcp.org
Java Specification Request (JSR) son las “leyes” establecidas por el “Congreso de Java”.
El JCP está descrito por el JSR 215.
JSR esblecen una característica especial de Java. </li></ul>
¿Quiénes implementan los JSR? <ul><li>Tomcat 6:  </li><ul><li>Servlet 2.5 (JSR154) / JSP 2.1 (JSR 245) </li></ul><li>Glass...
EJB 3.0 (JSR 220)
JSF 1.2 (JSR 2.5.2)
JAX-WS  2.0 (JSR 224), y más... (JSR 244) </li></ul><li>Oracle WebLogic: Java EE5 (JSR244) </li></ul>
Agenda <ul><li>Lo nuevo de Java EE6 (JSR 316) </li><ul><li>Tecnología Web </li><ul><li>Java Servlets 3.0 (JSR 315)
Java Server Faces 2.0 (JSR 314) </li></ul><li>Aplicaciones empresariales </li><ul><li>JPA 2.0 (JSR 317)
EJB 3.1 (JSR 318) </li></ul></ul></ul>
Java EE 6 – Tecnología Web <ul><li>Java Servlets 3.0 (JSR 315)
Java Server Faces 2.0 (JSR 314) </li></ul>
Java Servlets 3.0 (JSR 315) <ul><li>Hasta luego web.xml, hola Anotaciones </li><ul><li>@WebServlet
@WebListener
@WebFilter </li></ul></ul>¿Y los framework como Struts, JSF, SpringWeb, etc? La declaración del servlet estarán en archivo...
Java Server Faces 2.0 (JSR 314) <ul><li>Facelets. Archivo “form.xhtml” </li></ul><?xml version='1.0' encoding='UTF-8' ?> <...
Java Server Faces 2.0 (JSR 314) <ul><li>Facelets (cont). Archivo “plantilla.xhtml” </li></ul><?xml version='1.0' encoding=...
Java Server Faces 2.0 (JSR 314) <ul><li>ManagedBean ahora como POJO(*) </li></ul>.... @ManagedBean(name =  &quot;form&quot...
Java Server Faces 2.0 (JSR 314) <ul><li>Validando campos (Bean Validation) </li></ul>@ManagedBean(name = &quot;form&quot;)...
Upcoming SlideShare
Loading in...5
×

Lo nuevo de Java EE6

571

Published on

Exposición presentada en el Evento JavaDay UNI del 26/11/2009

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
571
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lo nuevo de Java EE6

  1. 1. Java Enterprise Edition 6 Java EE 6 (JSR 316) Diego E. Silva Límaco Apuntes de Java: http://apuntesdejava.blogspot.com
  2. 2. Antes.... Java EE 6 ¿? ¿? ¿? ¿? <ul><li>¿Tiene algo que ver con Java SE?
  3. 3. ¿Qué es la versión 6?
  4. 4. ¿Dónde se descarga? </li></ul>
  5. 5. <ul><li>Congreso hace leyes
  6. 6. Las leyes se aplican en todo el país
  7. 7. Algo ILEGAL es cuando no cumple con la ley
  8. 8. Las leyes mantenien el orden en un país </li></ul>Las especificaciones son leyes que establecen la manera uniforme de realizar una característica de Java. Evita que halla “varios estándares”, es decir “muchas maneras únicas”. La especificación no dice cómo debe hacerse, sino lo que tiene que hacerse. Los proveedores implementan a su manera las especificaciones, pero deben cumplirlas tal cómo se indica. Analogía con el Congreso
  9. 9. public class Implementac ión implements Especificación{ ... public class TomcatServidorWeb implements ServidorWeb{ ... public class ResinServidorWeb implements ServidorWeb{ ... public interface ServidorWeb{ ... Analogía en lenguaje Java
  10. 10. JCP y JSR <ul><li>Java Community Process es el Congreso de Java http://jcp.org
  11. 11. Java Specification Request (JSR) son las “leyes” establecidas por el “Congreso de Java”.
  12. 12. El JCP está descrito por el JSR 215.
  13. 13. JSR esblecen una característica especial de Java. </li></ul>
  14. 14. ¿Quiénes implementan los JSR? <ul><li>Tomcat 6: </li><ul><li>Servlet 2.5 (JSR154) / JSP 2.1 (JSR 245) </li></ul><li>Glassfish v2: </li><ul><li>Servlet 2.5 (154) / JSP 2.1 (245)
  15. 15. EJB 3.0 (JSR 220)
  16. 16. JSF 1.2 (JSR 2.5.2)
  17. 17. JAX-WS 2.0 (JSR 224), y más... (JSR 244) </li></ul><li>Oracle WebLogic: Java EE5 (JSR244) </li></ul>
  18. 18. Agenda <ul><li>Lo nuevo de Java EE6 (JSR 316) </li><ul><li>Tecnología Web </li><ul><li>Java Servlets 3.0 (JSR 315)
  19. 19. Java Server Faces 2.0 (JSR 314) </li></ul><li>Aplicaciones empresariales </li><ul><li>JPA 2.0 (JSR 317)
  20. 20. EJB 3.1 (JSR 318) </li></ul></ul></ul>
  21. 21. Java EE 6 – Tecnología Web <ul><li>Java Servlets 3.0 (JSR 315)
  22. 22. Java Server Faces 2.0 (JSR 314) </li></ul>
  23. 23. Java Servlets 3.0 (JSR 315) <ul><li>Hasta luego web.xml, hola Anotaciones </li><ul><li>@WebServlet
  24. 24. @WebListener
  25. 25. @WebFilter </li></ul></ul>¿Y los framework como Struts, JSF, SpringWeb, etc? La declaración del servlet estarán en archivos web-fragment.xml
  26. 26. Java Server Faces 2.0 (JSR 314) <ul><li>Facelets. Archivo “form.xhtml” </li></ul><?xml version='1.0' encoding='UTF-8' ?> <html xmlns= &quot;http://www.w3.org/1999/xhtml&quot; xmlns:ui= &quot;http://java.sun.com/jsf/facelets&quot; xmlns:h= &quot;http://java.sun.com/jsf/html&quot; > <ui:composition template= &quot;/plantilla.xhtml&quot; > <ui:define name= &quot;titulo&quot; > Esto es un título </ui:define> <ui:define name= &quot;contenido&quot; > <h:form> Esto es el cuerpo </h:form> </ui:define> </ui:composition> </html>
  27. 27. Java Server Faces 2.0 (JSR 314) <ul><li>Facelets (cont). Archivo “plantilla.xhtml” </li></ul><?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;> <html xmlns= &quot;http://www.w3.org/1999/xhtml&quot; xmlns:ui= &quot;http://java.sun.com/jsf/facelets&quot; xmlns:h= &quot;http://java.sun.com/jsf/html&quot; > <h:head> <title><ui:insert name= &quot;titulo&quot; /> </title> </h:head> <h:body> <h2><ui:insert name= &quot;titulo&quot; /></h2> <p> <ui:insert name= &quot;contenido&quot; /> </p> </h:body> </html>
  28. 28. Java Server Faces 2.0 (JSR 314) <ul><li>ManagedBean ahora como POJO(*) </li></ul>.... @ManagedBean(name = &quot;form&quot; ) @RequestScoped public class FormManagedBean { .... (*) POJO: Plan Old Java Object: Objetos java como era antes.
  29. 29. Java Server Faces 2.0 (JSR 314) <ul><li>Validando campos (Bean Validation) </li></ul>@ManagedBean(name = &quot;form&quot;) @RequestScoped public class FormManagedBean { @Pattern(regexp = &quot;(.+)&quot; , message = &quot;{validar.nombre.incorrecto}&quot; ) private String nombre ; @Email @NotNull private String correoElectronico ; ...
  30. 30. Java Server Faces 2.0 (JSR 314) <ul><li>Validando campos. ValidationMessages.properties </li></ul>validar.nombre.incorrecto= Debe escribir el nombre
  31. 31. Java EE 6 – Aplicaciones empresariales <ul><li>JPA 2.0 (JSR 317)
  32. 32. EJB 3.1 (JSR 318) </li></ul>
  33. 33. JPA 2.0 (JSR 317) <ul><li>Antes (JPA 1.0): </li></ul>@PersistenceContext(unitName = &quot;travelPU&quot; ) EntityManager em ; public List<Customer> getCustomers () { Query query = em .createQuery( &quot;select * from Customer&quot; ); return query.getResultList(); } No lanza error en el tiempo de compilación. No hay seguridad de que se ejecute correctamente
  34. 34. JPA 2.0 (JSR 317) <ul><li>Ahora (JPA 2.0): </li></ul>@PersistenceContext(unitName = &quot;travelPU&quot; ) EntityManager em ; public List<Customer> getCustomers () { CriteriaQuery cq = em .getCriteriaBuilder().createQuery(); cq.select(cq.from(Customer.class)); return query.createQuery(cq).getResultList(); } Las consultas son programadas
  35. 35. EJB 3.1 (JSR 318) <ul><li>Sin interfaces
  36. 36. Se incluyen en Módulo Web (.war)
  37. 37. @Singleton
  38. 38. Asincronía
  39. 39. Ejecuciones programadas </li></ul>
  40. 40. EJB 3.1 (JSR 318) <ul><li>Sin interfaces: </li></ul>@Stateless public class InventarioBean{ public double getPrecioProducto(String idProducto){ .... } }
  41. 41. EJB 3.1 (JSR 318) <ul><li>Se incluyen en Módulo Web (.war) </li></ul>Antes:
  42. 42. EJB 3.1 (JSR 318) <ul><li>Se incluyen en Módulo Web (.war) </li></ul>Ahora:
  43. 43. EJB 3.1 (JSR 318) <ul><li>@Singleton </li><ul><li>Un solo EJB en el contenedor.
  44. 44. Transaccionales y Thread Safe
  45. 45. Anotaciones de concurrencia </li></ul></ul>
  46. 46. EJB 3.1 (JSR 318) <ul><li>@Singleton </li></ul>@ConcurrencyManagement(ConcurrencyManagementType. CONTAINER ) @Singleton public class CuentaAhorroBean { @Lock(LockType. READ ) public double getSaldo() { //... } @Lock(LockType. WRITE ) public void retiro( double monto) { //... } }
  47. 47. EJB 3.1 (JSR 318) <ul><li>Asincronía </li></ul>@Stateless public class OrdenesBean { @Asynchronous public void pagarPedido(Pedido pedido) { try { pagar(pedido); notificarPagoRealizado(pedido); pedido.setEstadoPedido(EstadoPedido. COMPLETADO ); } catch (PagoException ex) { notificarErrorPago(ex, pedido); pedido.setEstadoPedido(EstadoPedido. FALLADO ); } finally { actualizar(pedido); } }//...
  48. 48. EJB 3.1 (JSR 318) <ul><li>Asincronía (con tipo) </li></ul>@Stateless public class OrdenesBean { @Asynchronous public Future<EstadoPedido> pagarPedido(Pedido pedido) { try { pagar(pedido); notificarPagoRealizado(pedido); return new AsyncResult<EstadoPedido>(EstadoPedido. COMPLETADO ); } catch (PagoException ex) { notificarErrorPago(ex, pedido); return new AsyncResult<EstadoPedido>(EstadoPedido. FALLADO ); } }//...
  49. 49. EJB 3.1 (JSR 318) <ul><li>Ejecuciones programadas </li></ul>@Stateless public class AlertasBean { @Schedule(hour = &quot;11&quot; , dayOfWeek = &quot;Fri&quot; ) public void revisarStock() { //... } @Schedules({ @Schedule(hour = &quot;0&quot; ), @Schedule(hour = &quot;12&quot; , minute = &quot;0&quot; )}) public void sincronizarCuentas() { //.. }
  50. 50. Ejemplo integrado
  51. 51. Más de Java EE6 <ul><li>Servlets asíncronos
  52. 52. EJB Lite
  53. 53. Web Profile
  54. 54. JAX-RS 1.1 (JSR 311)
  55. 55. JSP 2.2 / EL 1.1 (JSR 245)
  56. 56. Global JNDI </li></ul>Y mucho más...
  57. 57. Java Enterprise Edition 6 Java EE 6 (JSR 316) Diego E. Silva Límaco Apuntes de Java: http://apuntesdejava.blogspot.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×