3.2.10. Cambios de invocaciones remotas
3.2.10.1. Migración de aplicaciones implementadas de JBoss EAP 5 que realizan invocaciones remotas en JBoss EAP 6 Copiar enlaceEnlace copiado en el portapapeles!
En JBoss EAP 5, la interfaz remota EJB se enlazaba en JNDI por defecto bajo el nombre "ejbName/local" para las interfaces locales y "ejbName/remote" para las interfaces remotas. Luego la aplicación cliente buscaba el bean usando "ejbName/remote".
ejb:BEAN_REFERENCE para acceso remoto a EJBs con la siguiente sintaxis.
ejb:BEAN_REFERENCE es:
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 es:
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>- el nombre de la aplicación de las EJBs implementadas. Este es usualmente el nombre ear sin el sufijo .ear, sin embargo, el nombre se puede sobreescribir en el archivo application.xml. Si la aplicación no se implementa como un .ear, este valor es una cadena vacía. Asuma que este ejemplo no se implementaba como un EAR.<module-name>- el nombre del módulo de las EJBs implementadas en el servidor. Este es usualmente el nombre jar de la implementación EJB sin el sufijo .jar, pero se puede sobreescribir usando el ejb-jar.xml. En este ejemplo, asuma que las EJBs se implementaban en una jboss-ejb-remote-app.jar así que el nombre del módulo es jboss-ejb-remote-app.<distinct-name>- un nombre diferente opcional para la EJB. Este ejemplo no usa un nombre diferente así que utiliza una cadena vacía.<bean-name>- por defecto, es el nombre simple de la clase de la clase de la implementación del bean.<fully-qualified-classname-of-the-remote-interface>- el nombre de la clase completamente calificada de la vista remota.
Asuma que ha implementado los siguientes EJB sin estado en un servidor de JBoss EAP 6. Note que expone una vista remota para el 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")