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?
Variavel de ambiente em contexto
4 Respostas
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…
valheu cara, funcionou perfeitamente.
fica de feedback
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.
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.