3.2.10. Changements dans les invocations à distance
3.2.10.1. Migrer des Applications dépoyées dans JBoss EAP 5 qui font des invocations dans JBoss EAP 6 Copier lienLien copié sur presse-papiers!
Dans JBoss EAP 5, l'interface distante EJB était liée dans JNDI, par défaut, sous le nom "ejbName/local" pour les interfaces locales, et "ejbName/remote" pour les interfaces éloignées. L'application client consulte ensuite le bean qui utilise "ejbName/remote".
ejb:
BEAN_REFERENCE d'accès distant aux EJB avec la syntaxe suivante :
ejb:
BEAN_REFERENCE est la suivante :
ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface>
ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface>
ejb:
BEAN_REFERENCE est la suivante :
ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface>?stateful
ejb:<app-name>/<module-name>/<distinct-name>/<bean-name>!<fully-qualified-classname-of-the-remote-interface>?stateful
<app-name>
- le nom de l'application des EJB déployés. C'est généralement le nom de l'ear sans le suffixe .ear. Cependant, le nom peut être substitué dans le fichier application.xml. Si l'application n'est pas déployée comme un .ear, cette valeur correspondra à une chaîne vide. Assumons que cet exemple n'était pas déployé en tant qu'EAR.<module-name>
- le nom du module des EJB déployés sur le serveur. Il s'agit normalement du nom du jar du déploiement EJB, sans le suffixe .jar, mais il peut être remplacé par ejb-jar.xml. Dans cet exemple, on assume que les EJB sont déployés dans jboss-ejb-remote-app.jar, donc le nom du module est jboss-ejb-remote-app.<distinct-name>
- un nom d'EJB distinct, en option. Cet exemple n'utilise pas un nom distinct, mais un string vide.<bean-name>
- correspond par défaut au nom de simple classe d'implémentation du bean.<fully-qualified-classname-of-the-remote-interface>
- le nom de classe complet de la vue distante.
Assumons que vous avez déployé l'EJB stateless suivant dans un serveur JBoss EAP 6. Notez qu'il expose une vue distante du bean :
final RemoteCalculator statefulRemoteCalculator = (RemoteCalculator) context.lookup("ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + viewClassName + "?stateful")
final RemoteCalculator statefulRemoteCalculator = (RemoteCalculator) context.lookup("ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + viewClassName + "?stateful")