Recherches d'EJB distants

Si des applications recherchent ou appellent des beans EJB distants, réfléchissez à la manière de maintenir l'accès à ces beans depuis le cloud ou envisagez de migrer tous les EJB associés vers le cloud.

Dans le code Java, les annotations javax.ejb.EJB avec un élément lookup qui utilise l'espace-noms java:global ou corbaname: indiquent qu'un EJB distant peut être utilisé. Si l'EJB spécifié dans la recherche se trouve dans une autre application, envisagez de migrer l'application vers le cloud avec cette application.

  @EJB(lookup="java:global/myApp/myModule/MyBeanComponent")
		

Pour les descripteurs de déploiement, un élément <ejb-ref> dans un fichier application.xml, ejb-jar.xml ou web.xml avec un élément <home> ou <remote> indique également l'utilisation d'un EJB distant.

  <ejb-ref> <ejb-ref-name>CartHomeRemote</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <home>com.ibm.ejbs.CartHomeRemote</home> <remote>com.ibm.ejbs.CartRemote</remote> </ejb-ref>

Cette règle est signalée une fois par projet Eclipse ou par archive Java.

Mode de résolution

Si votre application peut accéder directement au fournisseur distant d'EJB, aucune action supplémentaire n'est requise.

Sinon, vous pouvez également déplacer dans le cloud les applications qui contiennent les beans EJB distants lorsque vous migrez cette application. Analysez ces applications pour détecter les éventuels problèmes de connectivité. Vous pouvez également utiliser un tunnel VPN, par exemple IBM Cloud Secure Gateway, pour créer une connexion sécurisée permettant de rechercher votre fournisseur distant d'EJB locaux. Pour plus d'informations sur la configuration d'une connexion sécurisée, voir Configuration d'un VPN. Pour les recherches d'EJB, configurez comme destination dans le client sécurisé l'arborescence JNDI locale. Utilisez l'hôte et le port renvoyés par cette configuration pour votre connexion sécurisée du cloud en utilisant l'un des formats suivants :

Modifiez l'URL du fournisseur dans les propriétés InitialContext ou JNDI afin d'utiliser l'hôte et le port du cloud.

Lorsque vous configurez une connexion sécurisée pour les appels vers les beans EJB locaux, créez et installez un servlet de tunnellisation HTTP sur le serveur d'applications local et activez la tunnellisation dans la fonction ORB côté client. Pour plus d'informations, voir Activation des tunnels HTTP. Configurez le client sécurisé de sorte qu'il pointe vers le servlet de tunnellisation HTTP, puis utilisez l'hôte et le port renvoyés par la configuration, en respectant le format suivant, pour établir la connexion sécurisée du cloud :

Vous pouvez appliquer cette technique lorsque le client EJB est déplacé vers le cloud et que le bean EJB est local, et inversement.

Remarque : Les applications Liberty for Java utilisant des beans EJB distants peuvent être déployées dans un environnement d'exécution instantanée IBM Cloud. Toutefois, les beans EJB distants ne sont pas accessibles à distance avec le protocole CORBA/IIOP en raison des restrictions de port dans l'environnement IBM Cloud. Pour plus d'informations sur Liberty or more information about Liberty for Java on IBM Cloud, voir Liberty features supported in IBM Cloud.