Como carregar variáveis de Contexto com o TOMCAT

0 respostas
G

Olá pessoal .
Eis a minha situação:

Minha aplicação tem uma servlet que a principio estou usando apenas para carregar variáveis de configuração. (Fiz isso propositamente para fins de teste, pois quero ver como posso manipular tais variáveis em uma aplicação). Ela é semelhante a isto(estas são as linhas iniciais) :

[color=“darkred”]public class GibaHttpServlet extends HttpServlet implements HttpJspPage{

public static String diretorioSistema = "";
  
  public  String username = "";
  public  String password = "";
  
  private Properties properties;

  public void init(ServletConfig config) throws ServletException
  {
    super.init(config);
   
    diretorioSistema  = getServletContext().getInitParameter("diretorio.sistema");
    username = getServletContext().getInitParameter("user.sistema");
    password = getServletContext().getInitParameter("password.sistema");
    
    Enumeration todosParametrosDaServlet = getServletContext().getInitParameterNames();
    System.out.println("ABAIXO ESTAO LISTADOS OS PARAMETROS DE INICIALIZACAO DA SERVLET : ");
    while (todosParametrosDaServlet.hasMoreElements()) {
         System.out.println(todosParametrosDaServlet.nextElement());
     }

    if (diretorioSistema == null) {
      System.out.println("Nenhum parâmetro inicial para este ServletContext ..Bug 001");
      return;
    }

                                   etc...[/color]

Nota : Eu costumo colocar varios System.out.println para tentat acompanhar o processo no console do TOMCAT

Tenho outra classe que vai estender a classe acima e que vai tratar somente com variáveis e constantes de configuração :

[color=“darkred”]public class CarregadoraDeConstantes extends GibaHttpServlet
{

public void init(ServletConfig config) throws ServletException
  {

    super.init(config);

    System.out.println("CarregadoraDeConstantes ==========>>> diretorioSistema ="+diretorioSistema);
    Constantes constantes = new Constantes();
    try{
      if (diretorioSistema == null){
    	  System.out.println("Void Init da CarregadoraDeConstantes ->  SEM CHANCES !!!");
    	  return;
      }[/color]

No web.xml da minha aplicação configurei para que a classe CarregadoraDeConstantes fosse inicializada com o startup do tomcat (<load-on-startup>1</load-on-startup>)

Criei um arquivo de contexto dentro do \conf\Catalina\localhost do TOMCAT com o seguinte aspecto :

[color=“darkred”]<?xml version=“1.0” encoding=“iso-8859-1”?>

<Context path="" docBase=“C:\appwebgil” debug=“3” reloadable=“true” crossContext=“true”>
<Logger className=“org.apache.catalina.logger.FileLogger” prefix=“appwebgil_log.” suffix=".txt" timestamp=“true”/>
<Parameter name=“diretorio.sistema” value=“C:\appwebgil” override=“false”/>
<Parameter name=“user.sistema” value=“root” override=“false”/>
<Parameter name=“password.sistema” value=“123” override=“false”/>

</Context>[/color]

Bom acho que estas informações básicas são suficientes para a minha questão.
Iniciei o TOMCAT e eis algumas linhas que aparecem no console:

[color=“blue”]30/03/2007 10:49:06 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
30/03/2007 10:49:06 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1438 ms
30/03/2007 10:49:06 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
30/03/2007 10:49:07 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.0.30
30/03/2007 10:49:07 org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
30/03/2007 10:49:07 org.apache.catalina.core.StandardHost getDeployer
INFO: Create Host deployer for direct deployment ( non-jmx )
30/03/2007 10:49:07 org.apache.catalina.core.StandardHostDeployer install
INFO: Processing Context configuration file URL file:C:\jakarta-tomcat-5.0.30\co
nf\Catalina\localhost\admin.xml
30/03/2007 10:49:10 org.apache.catalina.core.StandardHostDeployer install
INFO: Processing Context configuration file URL file:C:\jakarta-tomcat-5.0.30\conf\Catalina\localhost\appgibaweb.xml
ABAIXO ESTAO LISTADOS OS PARAMETROS DE INICIALIZACAO DA SERVLET :
system_name
diretorio.sistema
user.sistema
navigation_menu
db.sistema
password.sistema
log4j:WARN No appenders could be found for logger (br.com.giba.servlet.Carregado
raDeConstantes inicia HOME SERVLET:C:\appwebgil).
log4j:WARN Please initialize the log4j system properly.

30/03/2007 10:49:11 org.apache.catalina.core.StandardHostDeployer install
INFO: Processing Context configuration file URL file:C:\jakarta-tomcat-5.0.30\conf\Catalina\localhost\balancer.xml
30/03/2007 10:49:11 org.apache.catalina.startup.ContextConfig applicationConfig
INFO: Missing application web.xml, using defaults only StandardEngine[Catalina].
StandardHost[localhost].StandardContext[/balancer]
30/03/2007 10:49:11 org.apache.catalina.core.StandardHostDeployer install
INFO: Processing Context configuration file URL file:C:\jakarta-tomcat-5.0.30\co
nf\Catalina\localhost\manager.xml

30/03/2007 10:49:11 org.apache.catalina.core.StandardHostDeployer install
INFO: Installing web application at context path /appwebgil from URL file:C:\appwebgil

ABAIXO ESTAO LISTADOS OS PARAMETROS DE INICIALIZACAO DA SERVLET :
Nenhum parÔmetro inicial para este ServletContext …Bug 001
CarregadoraDeConstantes ==========>>> diretorioSistema =null

Void Init da CarregadoraDeConstantes -> SEM CHANCES !!!
30/03/2007 10:49:12 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
30/03/2007 10:49:12 org.apache.jk.common.ChannelSocket init
INFO: JK2: ajp13 listening on /0.0.0.0:8009
30/03/2007 10:49:12 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/78 config=C:\jakarta-tomcat-5.0.30\conf\jk2.proper
ties
30/03/2007 10:49:12 org.apache.catalina.startup.Catalina start
INFO: Server startup in 5812 ms[/color]

A primeira questão é:

Porque o Tomcat faz um :
"INFO: Processing Context configuration file URL file:C:\jakarta-tomcat-5.0.30\conf\Catalina\localhost\appgibaweb.xml"
e um :
"INFO: Installing web application at context path /appwebgil from URL file:C:\appwebgil" ?

A segunda questão é :

Porque depois do INFO: Processing Context configuration file URL file:C:\jakarta-tomcat-5.0.30\conf\Catalina\localhost\appgibaweb.xml"
eu consigo obter os parâmetros de inicialização que eu quero e no
INFO: Installing web application at context path /appwebgil from URL file:C:\appwebgil” parece que eu perco os meus parâmetros ?

Lembrando que estes parâmetros eu configurei dentro do meu arquivo de contexto conforme falei acima.

Como faço para ter este parametros disponíveis no contexto da minha aplicação ?

Desde já agradeço a ajuda de quem puder me responder estas questões e me orientar como usar estes parâmetros.
[color="#444444"][/color][color="#444444"][/color]

Criado 30 de março de 2007
Respostas 0
Participantes 1