JSF2: Manejo de la conexión RMI desde WebListener a ManagedBeans

Problema inicial

Hola,

Utilizo una clase @WebListener para iniciar una conexión RMI en la implementación de la aplicación. Eso conecta mi interfaz JSF con un backend.

¡Eso funciona bien!

A continuación, quiero entregar la conexión a un ManagedBean porque quiero usar la conexión para, por ejemplo, guardar algo de un bean, ya que no se puede acceder a weblistener desde las páginas xhtml.

Intenté poner una propiedad administrada en esa clase, pero creo que eso no está permitido. Entonces, ¿cómo hacer eso?

@WebListener
public class Config implements ServletContextListener {

public static final String SERVER_NAMING = "xxx";
public static final String SERVER_HOST = "xxx"; 

public static FrontendCommInterface server;


public void contextInitialized(ServletContextEvent event) {
    try {

        server = (FrontendCommInterface) Naming.lookup("rmi://" + SERVER_HOST + "/" + SERVER_NAMING); 
            System.out.println("Connection successfull!");
//HERE THE SERVER SHOULD HANDED TO ANOTHER MANAGEDBEAN !!! BUT HOW TO DO THAT??? 

        } catch (MalformedURLException e) {
        System.out.print("Error: " + e.getLocalizedMessage());
    } catch (RemoteException e) {
        System.out.print("Error: " + e.getLocalizedMessage());
    } catch (NotBoundException e) {
        System.out.print("Error: " + e.getLocalizedMessage());
    }
}

public void contextDestroyed(ServletContextEvent event) {
    // Do stuff during webapp's shutdown.
} 

preguntado el 09 de enero de 11 a las 12:01

1 Respuestas

Debe crear el bean y ponerlo en el alcance de la aplicación usted mismo.

event.getServletContext().setAttribute("communication", new Communication(server));

Respondido el 09 de enero de 11 a las 15:01

¿Puedo usar ManagedProperties en WebListners? - Sven

No, definitivamente no. Tenga en cuenta que actualicé la respuesta ya que entendí mal el problema inicial debido a la falta de café esta mañana temprano;) - BalusC

No hay problema :-D. Pero mientras tanto traté de agregar sus otros consejos que incluían postConstruct y funciona :-) Gracias - Sven

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.