Executar no deploy da aplicação[RESOLVIDO]

Pessoal gostaria de saber se existe algum listener ou algo do tipo que executa no deploy da aplicação JSF 1.2, porém eu preciso que o FacesContext já esteja carregado.

Não encontrei nada,

Me ajudem

O FacesContext só é carregado nas requisições para o ciclo de vida JSF. Listener de deploy tem, mas não vai dar para acessar nada do JSF.
Qual é seu problema?

O que acontece é um seguinte…
Eu sei que não é certo mas é uma aplicação de demonstração.
Essa minha aplicação é um servidor socket, ele fica escutando uma porta e recebe as informações de alguns terminais, temos um protocolo combinado.
Hoje eu tenho um botão dentro da aplicação que inicia este servidor socket, porém eu gostaria de tirar este botão e fazer este servidor iniciar no deploy ou algum jeito de iniciar automático, sem intervenção de pessoas.

Obrigado pela aajuda

Vc não precisa do faces para fazer…
Retire a logica que faz o esquema do socket em outra classe fora do managed bean.
No listerner de deploy servlet, vc executa esse código…

Cara você me ajudou demais… muito obrigado.

Consegui resolver, salvo o status do servidor no ServletContext e depois eu recupero assim eu consigo saber o Status do servidor dentro da aplicação.

public class ListenerInitialContext implements ServletContextListener
{

	/** (non-Javadoc)
	 * @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent)
	 */
	@Override
	public void contextDestroyed(ServletContextEvent event)
	{
		ServerSocketFacade serverSocketFacade;
		
		serverSocketFacade = new ServerSocketFacade(event.getServletContext());
		serverSocketFacade.stopServer();
	}

	/** (non-Javadoc)
	 * @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent)
	 */
	@Override
	public void contextInitialized(ServletContextEvent event)
	{
		ServerSocketFacade serverSocketFacade;
		
		try
		{
			serverSocketFacade = new ServerSocketFacade(event.getServletContext());
			serverSocketFacade.startServer();
		}
		catch (ViewException e)
		{
			e.printStackTrace();
		}
	}
}

OK :smiley:
Vai mais umas dicas…

  1. O listener é singleton no web container…então seu codigo ficaria mais elegante assim:

[code]public class ListenerInitialContext implements ServletContextListener {

private ServerSocketFacade serverSocketFacade;

@Override
public void contextInitialized(ServletContextEvent event) {
	try {
		serverSocketFacade = new ServerSocketFacade(
				event.getServletContext());
		serverSocketFacade.startServer();
	} catch (ViewException e) {
		e.printStackTrace();
	}
}

@Override
public void contextDestroyed(ServletContextEvent event) {
	serverSocketFacade.stopServer();
}

}[/code]
2. Vc não precisa usar subir um web container inteiro para fazer isso…um programa JSE com public static void main ja resolve. Existe algum motivo especial?

Então na verdade ele é um sistema WEB.
Tenho o controle desses terminais tenho páginas web e etc.