Variavel de ambiente em contexto

4 respostas
rodrigopmatias

Ai pessoal é o seguinte eu uso Jakarta-Tomcat e usando o /admin dele registrei uma variavel de ambiente em um context e agora estou penando para conseguir pegar o valor desta variavel de ambiente no contexto, por acaso alguem ja consegui usar esta funcionalidade? Como se usa?

4 Respostas

T

2 coisas que vc deve fazer:
-deve ‘linkar’ a sua variavel ao contexto que o utilizara, caso a variavel seja global. Nesse caso, adicione a seguinte tag ao seu Context.xml:

<ResourceLink
    global="nome do recurso"
    name="nome do recurso dentro do seu contexto (pode ser igual ou outro)"
    type="tipo do recurso (java.lang.String, pe)"/>

-dentro do seu programa, acesse a variavel assim:

Context init = new InitialContext ();
	Context envContext  = (Context)init.lookup("java:/comp/env");
	String test = (String) envContext.lookup("nome_do_recurso");

no meu caso, o nome do recurso especificado para este contexto era nome_do_recurso e o tipo era String…

rodrigopmatias

valheu cara, funcionou perfeitamente.

fica de feedback

agodinho

Olha, pra evitar problemas na hora do deploy costumo (e recomendo) usar contantes (carregadas de algum bundle). Isso pq teu server pode ter um root diferente ou pq o seu id de contexto já pode ter sido utilizado. Seria muito chato não ter como resolver isso na frente do cliente não é?

O código fica exatamente igual ao o que o takeshi10 mostrou, só que com constantes.

import com.something.constants.EJBRefs

   Context init = new InitialContext ();
   Context envContext  = (Context)init.lookup(EJBRefs.rootEnv);
   String test = (String) envContext.lookup(EJBRefs.NomeDoResource);

Woody

PS: recomento isso pra EJBs tb.

rodrigopmatias

valheu pela dica, mas alem de develop eu cuido do servidor entao nao passei por este problema citado. vou tentar no windows desta forma ai que vc mencionou pq nao funcionou perfeitamente da primeira forma, funciou algumas vezes e depois foi para a casa do papai noel a aplicação, mas o meu server é linux, este caso ocorreu na maquina de um dos desenvolvedores, so lamento para ele.

Criado 30 de março de 2006
Ultima resposta 2 de abr. de 2006
Respostas 4
Participantes 3