b3t6 - JEE Flashcards
Qué es JEE?
Java Enterpries Edition.
Es la versión empresarial de Java. Consiste en un conjuto de APIs (componentes y servicios)
En el mundo java, qué es una JSR
Java Specification Request: solicitud formal que plantea una especificación nueva o la modificación de alguna ya existente por el programa Java.
Por ejemplo, JPA 2.2 se corresponde con la JSR-338
Qué empresa controlaba Java y JEE hasta 2018?
Y a partir de ese año?
Hasta 2018 la controlaba Oracle
Tras 2018 pasa a controlarla la Eclipse Foundation
Cómo continúa el desarrollo de JEE, a partir de 2018, bajo la Eclipse Foundation?
Con un desarrollo con un flujo de trabajo ágil y abierto llamado JESP (Jakarta EE Specification Process)
Qué es JESP
(Jakarta EE Specification Process) → Proceso con el que se sigue desarrollando JEE en la Eclipse Foundation
Qué versiones hay de JEE en los últimos años y en qué año salieron?
JEE 7 → 2013
JEE8 → 2017
Jakarta EE 8 → 2018
Jakarta EE 9 → 2020
Jakarta EE 10 → 2022
Qué versiones de Java han salido estos últimos años y en qué año salieron?
Java 8 → 2014
Java 11 → 2018
Java 15 → 2020
Java SE 17 (LTS) → 2021
Java 19 → 2022
Cómo se convirtieron los paquetes javax. de JEE8 en la versión Jakarta EE 8?
No se convirtieron, se mantuvieron con javax.*
Cómo se convirtieron los paquetes javax. de Jakarta EE 8 en la versión Jakarta EE 9?
Pasaron de javax.* a jakarta.*
Desaparecen los paquetes javax.* y los xml cambian de nombre
Qué dos perfiles ofrece Jakarta EE y qué tienen cada uno?
- Web profile: tiene todo lo más básico ahora mismo, por ejemplo
- REST
- Seguridad
- JPA
- EJB
- JTA
- CDI
- …
- Full profile: además del Web profile tiene lo relacionado con
- WS Soap
- Batch
- JMS (mensajes)
- Autorización
- …
Sobre JEE, ¿conceptualmente qué es? ¿qué ofrece?
- Es una capa que corre sobre el JRE en los servidores de aplicaciones
- Un servidor de aplicaciones tiene que implementar todas las APIs de JEE
- Define los componentes de tu aplicación
- Define servicios que ofrece el servidor de aplicaciones
El API que ofrece JEE se divide en componentes y servicios del AppServer. ¿En qué dos capas se dividen los componentes? Nombra varios tipos de componentes de cada capa
- Capa de Presentación
- JSP (JavaServerPages)
- JSTL (JavaServerTagLibraries)
- JSF (JavaServerFaces)
- Servlets
- Capa Negocio
- EJB Sesion
- EJB MDB
- Web Services (SOAP y REST)
El API que ofrece JEE se divide en componentes y servicios del AppServer. ¿Qué servicios ofrecerá el AppServer? Nombra varios
- JTA (Servicio de transacciones)
• JNDI (Servicio de nombres – Arbol de objetos)
• JPA (Servicio de persistencia – ORM)
• JMS (Servicio de colas de mensajes)
• JSON-P (Servicio para documentos JSON)
• CDI (Servicio de inyección de dependencias)
• Jakarta MVC
• Jakarta NoSQL
Qué son Apache, Apache Tomcat y Apache TomEE?
Apache → Servidor web HTTP
Apache Tomcat → Contenedor de servlets
Apache TomEE → Servidor de aplicaciones JEE
Nombra algunos productos compatibles con JEE
- Jboss
- WildFly
- JRun
- WebLogic
- WebSphere Liberty
- Open Liberty
- Apache TomEE
- Payara
- Eclipse GlassFish
- Manage Fish
- Apusic
Qué es JTA? Qué objeto principal usa? Qué dos métodos?
Java Transacation Api: Para manejar transacciones distribuidas
Objeto principal → UserTransaction
métodos commit() y rollback()
Qué es JNDI? Qué objeto y método principal para buscar recursos tiene?
Servicio de directorio, para obtener recursos
Usa el objeto InitialContext y el método lookup(String) para buscar recursos en el árbol
Qué es JDBC? Qué objetos maneja?
Servicio de persistencia a bajo nivel
Driver / Datasource
Connecton
Statement / PreparedStatement / CallableStatement
Resulset
Qué es JMS? Qué objeto y método maneja?
Servicio de mensajería (colas de mensajes)
MessageListener (onMessage(Message))
Queue / Topic
Qué es JPA?
Qué clase principal usa y qué métodos y etiquetas usa?
Servicio de persistencia de alto nivel (ORM)
Usa la clase EntityManager (se crea con una EntityManagerFactory que hay que crear antes)
métodos persist(entidad), contains(entidad), find(PK), remove(entidad)
@Entity / @Table / @Id / @Column / @OneToMany
Se pueden hacer sql de tres tipos
sql nativa, de oracle por ejemplo
o sql JPQL, que puede ponerse directamente o establecerla como una @NamedQuery con una anotacion en la clase del modelo, (donde se especifican además el resto de anotaciones de JPA
createQuery(String qlString, Class<T> resultClass): Crea una consulta JPA utilizando lenguaje de consulta JPQL.
createNamedQuery(String name, Class<T> resultClass): Crea una consulta con nombre previamente definida en la entidad.
createNativeQuery(String sqlString, Class<T> resultClass): Crea una consulta nativa de SQL.</T></T></T>
Qué es JAX-WS?
Qué anotaciones usa?
Para webservices SOAP
@WebService / @WebMethod / @WebParam
Qué es JAX-RS? Qué métodos usa?
Para web services REST
@Path / @GET / @POST