JSF2: обработка соединения RMI от WebListener до ManagedBeans - PullRequest
0 голосов
/ 09 января 2011

Начальная проблема

Привет

Я использую класс @WebListener для инициирования RMI-соединения при развертывании приложения. Это связывает мой JSF-интерфейс с бэкэндом.

Это отлично работает!

Далее я хочу передать соединение ManagedBean, потому что я хочу использовать соединение, например, с. сохранить что-либо из bean-компонента, так как weblistener не доступен из страниц xhtml.

Я пытался поместить управляемое свойство в этот класс, но я думаю, что это запрещено. Так как это сделать?

@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.
} 

1 Ответ

2 голосов
/ 09 января 2011

Вам нужно создать компонент и самостоятельно поместить его в область приложения.

event.getServletContext().setAttribute("communication", new Communication(server));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...