Pegar contexto da aplicação web, utilizando um Component do vRaptor

2 respostas
danieltamiosso

Olá a todos,

Estou com uma dúvida, gostaria de saber se dentro de um Component do vRaptor, eu teria como descobrir o contexto da aplicação, para poder utilizar a mesma para ler um diretorio que se encontra na raiz da aplicacao. Por exemplo:

File f = new File (“contextPatch/arquivos”);

Já que o mesmo, obviamente tem como diretório raiz a unidade principal da minha máquina, no caso o “C:”.

Em outras palavras, qual seria a melhor saída para pegar o endereço completo da app? Qual a forma mais elegante?

Muito obrigado a todos…

2 Respostas

Fabio_Kung

Olá Daniel,

Tente isso (http://vraptor.org/injection.html):
@Component("meuComponente")
public class MeuComponente {
  private ServletContext application;
  
  public MeuComponente(ServletContext application) {
    this.application = application;
  }

  public void minhaLogica() {
    String path = this.application.getRealPath("/arquivos");
    File file = new File(path);
    // (...)
  }
}

Se você não quiser deixar seu componente dependente da API de Servlets, pode usar um interceptor que monta um "ResourceFinder" ou que já monta a String path para você, bastando injetar a String no seu componente: http://vraptor.org/pt/interceptor.html e http://vraptor.org/pt/injection.html

danieltamiosso

Valeu Fábio,

Era isso mesmo que eu precisava. Rolou perfeitão!

Abraço.

Criado 19 de dezembro de 2006
Ultima resposta 19 de dez. de 2006
Respostas 2
Participantes 2