Pegando a URL da aplicação em uma classe comum

Boa tarde senhores!

Tenho uma classe que é disparada de tempos em tempos pelo quartz e nessa classe, eu envio um email.

O problema é que eu preciso enviar um link no email que contém a url da aplicacao, por exemplo:

http://localhost:8080/MinhaAplicacao/ExibeDados

Só que como a classe não é um servlet e por isso não possuir o request.getRequestURL(), eu não sei como eu posso pegar essa url.

Salva essa informação em um arquivo de propriedades ou então no banco de dados uai.

Ou crie alguma classe ou propriedade que você consiga acessar via JNDI e buscar essa informação.

[quote=Hebert Coelho]Salva essa informação em um arquivo de propriedades ou então no banco de dados uai.

Ou crie alguma classe ou propriedade que você consiga acessar via JNDI e buscar essa informação.[/quote]

Obrigado pela resposta Hebert!

Teria como eu pegar essa informação por meio do método contextInitialized da interface ServletContextListener?
Esse método roda toda vez que minha aplicação sobe!

[quote=VagnerMG][quote=Hebert Coelho]Salva essa informação em um arquivo de propriedades ou então no banco de dados uai.

Ou crie alguma classe ou propriedade que você consiga acessar via JNDI e buscar essa informação.[/quote]

Obrigado pela resposta Hebert!

Teria como eu pegar essa informação por meio do método contextInitialized da interface ServletContextListener?
Esse método roda toda vez que minha aplicação sobe![/quote]Se ele ficar disponível via JNDI sim. Eu não sei te falar.
Caso não fique, adicione uma configuração que fique acessivel via JDNI e pronto. Basta fazer looup depois.

Pensando aqui agora, para fazer o lookup vc vai ter que ter a URL do servidor. Não adianta. -_-’’ =P

Crie um listener. quando a aplicação ficar de pé você pega a URL e salva no db.

Então, o listener eu já criei

[code]@WebListener
public class ApplicationContextListener implements ServletContextListener{

@Override
public void contextDestroyed(ServletContextEvent arg0) {
	
}

@Override
public void contextInitialized(ServletContextEvent event) {
	ServletContext context = event.getServletContext();
	System.setProperty("rootPath", context.getRealPath("/"));
	
	/*Descriptografando a senha do banco de dados*/
	try {
		byte[] key = { 85, 10, 0, -25, 68, 88, 46, 37, 107, 48, 10, -1, -37,
				-90, 70, -36 };
		System.setProperty("BDPassword",Encrypter.decriptar(key,Recurso
				.getInstance().getPropriedade("password")));
		
	} catch (EncryptorException e) {			
		e.printStackTrace();
	}
	
	
}

}[/code]

Consegue pegar a URL nele? Se sim, manda para o DB. Se não, cria uma variável no web.xml e busque o valor dela e salve no DB.

Hebert, não consegui pegar a url da aplicação!
Desculpe a ignorância, mas como faria isso via o web.xml?