Article de reference

Jakarta EE

Jakarta EE , anciennement Java Platform, Enterprise Edition ( Java EE ) et Java 2 Platform, Enterprise Edition ( J2EE ), est un ensemble de spécifications étendant Java SE avec ...

Java SE avec des spécifications pour des fonctionnalités d'entreprise telles que le calcul distribué et les services Web . Les applications Jakarta EE s'exécutent sur des environnements d'exécution de référence , qui peuvent être des microservices ou des serveurs d'applications , et qui gèrent les transactions, la sécurité, la scalabilité, la concurrence et l'administration des composants qu'ils déploient.

Jakarta EE est défini par sa spécification . Celle-ci définit les API (interfaces de programmation d'applications) et leurs interactions. Comme pour les autres spécifications du Java Community Process , les fournisseurs doivent satisfaire à certaines exigences de conformité pour que leurs produits soient déclarés conformes à Jakarta EE .

Voici quelques exemples de contextes dans lesquels les environnements d'exécution référencés Jakarta EE sont utilisés : commerce électronique , comptabilité , systèmes d'information bancaire .

Sun Microsystems était connue sous le nom de Java 2 Platform, Enterprise Edition ou J2EE à partir de la version 1.2, jusqu'à ce que son nom soit changé en Java Platform, Enterprise Edition ou Java EE dans la version 1.5.

Après l'acquisition de Sun en 2009 , Java EE a été maintenu par Oracle dans le cadre du Java Community Process . Le 12 septembre 2017, Oracle Corporation a annoncé son intention de confier Java EE à la Fondation Eclipse . Le projet Eclipse de haut niveau a été nommé Eclipse Enterprise for Java (EE4J). La Fondation Eclipse n'a pas pu s'entendre avec Oracle concernant l'utilisation des Java et capitale de l'Indonésie . Il ne faut pas confondre ce nom avec l'ancien projet Jakarta , qui a soutenu plusieurs projets Java, actuels et anciens, au sein de la Fondation Apache .

historique de la plateforme d'entreprise Java
Version de la plateformeVersion SpécificationSécurité basée sur HTTP/2 et CDI
Java EE 728/05/2013JSR 342Java SE 7Prise en charge de WebSocket , JSON et HTML5
Java EE 610 décembre 2009JSR 316Java SE 6Beans gérés par CDI et REST
Java EE 511 mai 2006JSR 244Java SE 5Annotations Java et génériques en Java
J2EE 1.411 novembre 2003JSR 151J2SE 1.4Services Web interopérables WS-I
J2EE 1.324/09/2001JSR 58J2SE 1.3Architecture du connecteur Java
J2EE 1.217 décembre 19991.2J2SE 1.2Version initiale des spécifications

Caractéristiques

Jakarta EE comprend plusieurs spécifications qui servent différents objectifs, comme la génération de pages web, la lecture et l'écriture dans une base de données de manière transactionnelle et la gestion des files d'attente distribuées.

Les API Jakarta EE incluent plusieurs technologies qui étendent les fonctionnalités des API Java SE de base , telles que Jakarta Enterprise Beans , les connecteurs , les servlets , Jakarta Server Pages et plusieurs technologies de services Web .

Spécifications Web

  • Jakarta Servlet : définit la manière de gérer les requêtes HTTP, de façon synchrone ou asynchrone. Il s’agit d’un composant de bas niveau dont dépendent d’autres spécifications Jakarta EE ;
  • Jakarta WebSocket : spécification d’API qui définit un ensemble d’API pour gérer les connexions WebSocket ;
  • Jakarta Faces : une technologie permettant de construire des interfaces utilisateur à partir de composants ;
  • Jakarta Expression Language ( EL ) est un langage simple conçu initialement pour répondre aux besoins spécifiques des développeurs d'applications web. Il est utilisé notamment dans Jakarta Faces pour lier les composants aux beans (de support) et dans Contexts et l'injection de dépendances aux beans nommés, mais peut être utilisé sur l'ensemble de la plateforme.

Spécifications des services Web

Spécifications d'entreprise

  • Jakarta Activation ( JAF ) spécifie une architecture permettant d'étendre les composants Beans en fournissant le typage des données et les liaisons de ces types.
  • Jakarta Contexts and Dependency Injection ( CDI ) est une spécification visant à fournir un conteneur d'injection de dépendances ;
  • La spécification Jakarta Enterprise Beans ( EJB ) définit un ensemble d'API légères qu'un conteneur d'objets (le conteneur EJB) prend en charge pour gérer les transactions (via JTA ), les appels de procédure distante (via RMI ou RMI-IIOP ), le contrôle de la concurrence , l'injection de dépendances et le contrôle d'accès aux objets métier. Ce package contient les classes et interfaces Jakarta Enterprise Beans qui définissent les contrats entre l'Enterprise Bean et ses clients, ainsi qu'entre l'Enterprise Bean et le conteneur EJB.
  • Jakarta Persistence ( JPA ) sont des spécifications concernant le mappage objet-relationnel entre les tables de bases de données relationnelles et les classes Java.
  • Jakarta Transactions ( JTA ) contient les interfaces et les annotations permettant d'interagir avec la prise en charge des transactions offerte par Jakarta EE. Bien que cette API fasse abstraction des détails de bas niveau de l'implémentation de la norme X/Open XA , les interfaces sont également considérées comme étant de bas niveau et le développeur d'applications moyen dans Jakarta EE est supposé soit s'appuyer sur une gestion transparente des transactions par les abstractions EJB de plus haut niveau, soit utiliser les annotations fournies par cette API en combinaison avec des beans gérés par CDI.
  • Jakarta Messaging ( JMS ) fournit un moyen commun aux programmes Java de créer, d'envoyer, de recevoir et de lire les messages d'un système de messagerie d'entreprise.

Autres spécifications

  • Validation Jakarta : ce package contient les annotations et les interfaces pour la prise en charge de la validation déclarative offerte par l’ API JSF le fait dans la couche de présentation.
  • Jakarta Batch offre les moyens de réaliser un traitement par lots dans les applications afin d'exécuter des tâches de fond de longue durée impliquant potentiellement un grand volume de données et pouvant nécessiter une exécution périodique.
  • Jakarta Connectors est un outil Java permettant de connecter les serveurs d'applications et les systèmes d'information d'entreprise ( SIE ) dans le cadre de l'intégration d'applications d'entreprise ( EAI ). Il s'agit d'une API de bas niveau destinée aux fournisseurs avec lesquels le développeur d'applications moyen n'a généralement pas de contact.

Profil Web

Afin de limiter l'encombrement des conteneurs web, tant physique que conceptuel, le profil web a été créé ; il s'agit d'un sous-ensemble des spécifications Jakarta EE. Le profil web Jakarta EE comprend les éléments suivants :

SpécificationJava EE 6 Java EE 7 Java EE 8 Jakarta EE 8 Jakarta EE 9 Jakarta EE 9,1 Jakarta EE 10 Jakarta EE 11
Servlet Jakarta3.03.14.05.06.06.1
Pages serveur Jakarta ( JSP )2.22.32.33.03.14.0
Langue d'expression de Jakarta ( EL )2.23.03.04.05.06.0
Bibliothèque de balises standard Jakarta ( JSTL )1.21.21.22.03.03.0
Visages de Jakarta2.02.22.33.04.04.1
Services Web RESTful de Jakarta ( JAX-RS )1.12.02.13.03.14.0
Jakarta Enterprise Beans ( EJB )3.1 Lite3.2 Lite3.2 Lite4.0 Lite4.0 Lite4.0 Lite
Transactions de Jakarta ( JTA )1.11.21.22.02.02.0
Persistance de Jakarta ( JPA )2.02.12.23.03.13.2
Validation des beans Jakarta1.01.12.03.03.03.1
N / A
Contextes et injection de dépendances Jakarta ( CDI )1.01.12.03.04.04.1
les connecteurs , le clustering , la tolérance aux pannes , la haute disponibilité , la sécurité , etc.), la taille installée, l'empreinte mémoire , le temps de démarrage, etc.

Jakarta EE

Référence à l'environnement d'exécution PromoteurPlateforme Jakarta EE 10Produits compatibles avec la plateforme Jakarta EE 9/9.1Produits compatibles avec le profil Web Jakarta EE 9/9.1Produits compatibles avec la plateforme Jakarta EE 8Produits compatibles avec le profil Web Jakarta EE 8Licence
Poisson de verreÉclipseLogiciel libre
Liberté ouverteIBMLogiciel libre
WebSphere LibertyIBMLogiciel propriétaire
WildFlyChapeau rougeLogiciel libre
JBoss EAPChapeau rougeLogiciel libre
TomEEApacheLogiciel libre
Serveur PayaraServices Payara LimitéeLogiciel libre
Logiciel propriétaire
JésusTmaxSoftLogiciel propriétaire
Logiciel propriétaire
NECLogiciel propriétaire

Java EE

Référence à l'exécutionPromoteurCertifié Java EE 8 – CompletCertifié Java EE 8 – WebCertifié Java EE 7 – CompletCertifié Java EE 7 – WebCertifié Java EE 6 – Page officielle complète d'Oracle pour la compatibilité Java EE.Certifié Java EE 6 – WebCertifié Java EE 5Certifié J2EE 1.4Licence
Serveur GlassFish Édition Open SourceOracleLogiciel libre
Serveur Oracle GlassFishOracleserveur d'applications système Java Sun v9.0serveur d'applications Sun Java System v8.2Logiciel propriétaire
Serveur Oracle WebLogicOracleLogiciel propriétaire
WildFlyChapeau rougeLogiciel libre
Plateforme d'applications d'entreprise JBossChapeau rougeServeur d'applications IBM WebSphereIBMServeur d'applications IBM WebSphere LibertyIBMIBM WebSphere Application Server Community EditionIBMApache GeronimoApacheJésusTmaxSoftHitachiServeur d'applications Fujitsu Interstage FujitsuWebOTXNECApache TomEE ApacheServeur en résineCauchoOW2OW2SAP NetWeaverSÈVEOracle Containers pour Java EEOracleServeur Web Oracle iPlanetOracleOracle Application Server 10gOracleSybaseAPI Jakarta EE utilisée pour envoyer et recevoir des e-mails via SMTP , POP3 et IMAP . Jakarta Mail est intégré à la plateforme Jakarta EE, mais propose également un package optionnel pour une utilisation dans Java SE .

La version actuelle est la 2.1.3, sortie le 29 février 2024. Une autre implémentation open source de Jakarta Mail existe (GNU JavaMail), qui - tout en ne prenant en charge que la spécification obsolète JavaMail 1.3 - fournit le seul backend NNTP gratuit , ce qui permet d'utiliser cette technologie pour lire et envoyer des articles de groupes de discussion .

Depuis 2019, le logiciel est connu sous le nom de Jakarta Mail et fait partie de la gamme Jakarta EE (anciennement Java EE ). L'implémentation de référence est intégrée au projet Eclipse Angus .

Les coordonnées Maven des projets nécessaires au fonctionnement sont :

  • API de messagerie : jakarta.mail:jakarta.mail-api:2.1.3
  • Implémentation du service de messagerie : org.eclipse.angus:angus-mail:2.0.3
  • extensions multimédias : jakarta.activation:jakarta.activation-api:2.1.3

Jakarta Mail est hébergé en tant que projet open source sur Eclipse.org sous son nouveau nom Jakarta Mail .

La majeure partie du code source de Jakarta Mail est distribuée sous les licences suivantes :

  • EPL-2.0
  • Licence GPL-2.0 avec exception de chemin de classe
  • Le code source des programmes de démonstration est distribué sous licence BSD.

Exemple de code

L'exemple de code ci-dessous illustre comment différentes technologies de Java EE 7 sont utilisées conjointement pour créer un formulaire web permettant de modifier un utilisateur.

En Jakarta EE, une interface utilisateur (web) peut être créée à l'aide de Jakarta Servlet , de Jakarta Server Pages ( JSP ) ou de Jakarta Faces ( JSF ) avec Facelets . L'exemple ci-dessous utilise Faces et Facelets . Il est important de noter que les composants d'entrée utilisent l'API de validation des beans de Jakarta EE en interne pour valider les contraintes.

xmlns:h= "http://xmlns.jcp.org/jsf/html" xmlns:f= "http://xmlns.jcp.org/jsf/core" ><f:metadata> <f:viewParam name= "user_id" value= "#{userEdit.user}" converter= "#{userConvertor}" /> </f:metadata><h:body><h:messages /><h:form> <h:panelGrid columns= "2" > <h:outputLabel for= "firstName" value= "Prénom" /> <h:inputText id= "firstName" value= "#{userEdit.user.firstName}" label= "Prénom" /><h:outputLabel for= "lastName" value= "Nom de famille" /> <h:inputText id= "lastName" value= "#{userEdit.user.lastName}" label= "Nom de famille" /><h:commandButton action= "#{userEdit.saveUser}" value= "Enregistrer" /> </h:panelGrid> </h:form></h:body> </html>

Exemple de classe Backing Bean

Pour faciliter la visualisation, Jakarta EE utilise un concept appelé « Backing Bean ». L’exemple ci-dessous utilise Contexts and Dependency Injection (CDI) et Jakarta Enterprise Beans ( EJB ).

Utilisateur % d enregistré" , this.user.getId ( ) ) ) ;return "users.xhtml?faces-redirect=true" ; }public void setUser ( User user ) { this.user = user ; }public User getUser () { return user ; } }

Exemple de classe d'objet d'accès aux données

Pour implémenter la logique métier, Jakarta Enterprise Beans ( EJB ) est la technologie dédiée de Jakarta EE. Pour la persistance des données, JDBC ou Jakarta Persistence (JPA) peuvent être utilisés. L'exemple ci-dessous utilise EJB et JPA. Il est important de noter que JTA est utilisé en interne par EJB pour gérer le comportement transactionnel.

User.getAll " , User.class ) .getResultList ( ) ; } }

Exemple de classe d'entité

Pour définir les classes d'entités/modèles, Jakarta EE fournit Jakarta Persistence ( JPA ), et pour exprimer les contraintes sur ces entités, il fournit l'API Bean Validation. L'exemple ci-dessous utilise ces deux technologies.

) private String firstName ;@Size ( min = 2 , message = "Nom de famille trop court" ) private String lastName ;public Integer getId () { return id ; }public void setId ( Integer id ) { this . id = id ; }public String getFirstName () { return firstName ; }public void setFirstName ( String firstName ) { this . firstName = firstName ; }public String getLastName () { return lastName ; }public void setLastName ( String lastName ) { this.lastName = lastName ; } }

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index