EJB 3.0 et EJB 3.1 Présentation du déploiement

Découvrez le modèle de déploiement des Enterprise JavaBeans (EJB) 3.0 et 3.1 , notamment le déploiement Just-In-Time (JIT).

Tous les produits de serveur d'applications Java™ Enterprise Edition (Java EE) comportent, sous une forme ou une autre, une phase de déploiement d'EJB dans laquelle votre application est personnalisée pour s'exécuter dans l'implémentation de serveur d'applications concernée. Cette opération est généralement effectuée par un outil de déploiement spécifique au serveur d'applications qui génère le code permettant d'associer votre interface EJB et son code d'implémentation avec l'implémentation de conteneur EJB du serveur d'applications. Certains outils de déploiement de serveurs d'applications modifient le code binaire de vos classes d'application au lieu de générer un code, mais le résultat final est identique.

Application Server relie votre interface EJB avec son implémentation en générant un code qui encapsule vos classes d'implémentation EJB et les connecte au conteneur EJB d'Application Server. Ceci permet au conteneur EJB d'héberger vos beans enterprise et de leur procurer des services. Si des interfaces distantes sont définies pour un ou plusieurs de vos beans enterprise, Application Server génère un code supplémentaire pour fournir des fonctions à distance.

Pour plus d'informations sur le packaging de votre module EJB, voir la rubrique "Présentation du packaging de module EJB 3.x".

Utilitaire EJBDeploy

Historiquement, le déploiement des Enterprise JavaBeans dans Application Server se fait avec l'utilitaire EJBDeploy, qui est fourni avec WebSphere Application Server parmi les outils de développement dédiés aux produits WebSphere.

Cet outil examine vos interfaces EJB externes, génère le code encapsuleur sous forme de fichiers .java, puis le compile à l'aide du compilateur javac afin de créer des fichiers .class qui sont ensuite intégrés à votre module EJB avec le code de l'application. Il exécute également l'outil rmic sur les interfaces EJB distantes de l'application, en générant des fichiers de classe stub et tie supplémentaires qui interagissent avec la fonction ORB (Object Request Broker) sous protocole RMI-IIOP (Remote Method Invocation over Internet Inter-ORB Protocol) pour prise en charge d'objets distants.

Pour les modules antérieurs à EJB 3.0, vous exécutiez jusqu'ici l'utilitaire EJBDeploy quand vous installiez l'application sur Application Server ou, avant d'installer l'application, depuis la ligne de commande ou avec un outil de développement.

Déploiement Just-In-Time (JIT)

La prise en charge d'EJB 3.0 dans Application Server ajoute une nouvelle fonction appelée déploiement JIT.

Avec le déploiement JIT, le conteneur EJB génère dynamiquement en mémoire les classes d'encapsuleur, de raccord (stub) et de lien (tie) lorsque l'application s'exécute. De plus, le conteneur Web et les conteneurs de l'application client génèrent dynamiquement les classes de raccord requises pour les appels d'EJB distants.

Concrètement, cela signifie que vous n'avez plus besoin de traiter les modules EJB 3.0 ou 3.1, les modules Web ou les modules client qui appellent des beans EJB 3.0 ou 3.1, à l'aide de l'outil EJBDeploy avant leur exécution dans Application Server.

Utilitaire createEJBStubs

La plupart du temps, la fonction de déploiement JIT (Just-In-Time) génère de manière dynamique les classes de modules de raccord RMI-IIOP nécessaires à l'appel des interfaces EJB distantes. Dans certains cas, ces classes de raccord ne sont pas générées dynamiquement. Pour les clients EJB 3.0 ou 3.1 ne s'exécutant pas dans un conteneur Web, un conteneur EJB ou un conteneur client compatible avec EJB 3.x, vous devez créer les classes de raccord à l'aide de l'outil createEJBStubs, puis les rendre disponibles dans le chemin de classes de l'environnement client. Ceci est généralement réalisé en copiant les raccords générés vers l'emplacement où résident les classes d'interface métier du client.

L'outil createEJBStubs doit être utilisé pour générer les raccords côté client dans les environnements suivants :
  • Clients Java Standard Edition (SE) nus ("Bare"), où l'environnement client est une machine virtuelle Java SE.
  • Conteneurs dans les environnement Application Server antérieurs à la version 7 ne disposant pas du Feature Pack for EJB 3.0
  • Environnements autres que les environnements WebSphere Application Server

Interopérabilité

Des résultats inattendus peuvent se produire si un produit de la famille WebSphere, ou un autre produit, exécuté sur une version d'Application Server non compatible avec EJB 3.0 ou 3.1 tente d'appeler à distance une méthode sur un bean enterprise compatible EJB 3.x sur un serveur séparé exécutant une version d'Application Server prenant en charge EJB 3.0 ou 3.1. Si ces programmes essaient d'appeler une méthode via l'interface métier à distance EJB 3.x du bean enterprise, ils risquent de rencontrer des exceptions introduites par EJB 3.0. Ces exceptions seront renvoyées vers l'environnement non compatible avec EJB 3.x.

Cette situation peut poser problème pour l'administrateur d'un environnement comprenant une combinaison de produits WebSphere avec des instances d'Application Server compatibles avec EJB 3.x et d'autres non compatibles.

Voici la liste des classes d'exception introduites par EJB 3.0 :
  • javax.ejb.ConcurrentAccessException
  • javax.ejb.EJBAccessException
  • javax.ejb.EJBTransactionRequiredException
  • javax.ejb.EJBTransactionRolledbackException
  • javax.ejb.NoSuchEJBException

Reportez-vous à la section relative au déploiement du module EJB pour plus d'informations sur les problèmes d'interopérabilité possibles.

Modules EJB 2.x

Les modules EJB 2.x ayant été convertis en modules EJB 3.0 ou EJB 3.1 doivent être débarrassés de tous les fichiers générés par WebSphere Application Server (y compris les classes de raccord et de lien) avant d'être déployés dans le produit Application Server.


Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cejb_deployejbfp
Nom du fichier : cejb_deployejbfp.html