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]