Topic
IC4NOTICE: developerWorks Community will be offline May 29-30, 2015 while we upgrade to the latest version of IBM Connections. For more information, read our upgrade FAQ.
No replies
SystemAdmin
SystemAdmin
16 Posts
ACCEPTED ANSWER

Pinned topic getInitParameterNames() não retorna parâmetros de servlet

‏2013-01-09T01:36:50Z |
Olá! Estou começando na programação web com servlets. Neste momento, estou tentando recuperar alguns parâmetros de inicialização de uma servlet e outros de contexto. Eles estão declarados no arquivo web.xml como segue:


<?xml version=
"1.0" encoding=
"UTF-8"?> 
{código
}<web-app xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance" xmlns=
"http://java.sun.com/xml/ns/javaee" xmlns:web=
"http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation=
"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version=
"3.0">
{código
} <display-name>JediWebTutorial</display-name> *<context-param>* *<param-name>contextParam</param-name>* *<param-value>contextValue</param-value>* *</context-param>* <servlet> <servlet-name>GreeterServlet</servlet-name> <servlet-class>jedi.servlets.GreeterServlet</servlet-class> *<init-param>* *<param-name>servletParam</param-name>* *<param-value>servletValue</param-value>* *</init-param>* </servlet> <servlet> <servlet-name>GetParameterValuesServlet</servlet-name> ...


Eu estou tentando buscar esses parâmetros dentro do método doGet da servelet GreeterServlet, da seguinte forma:




protected 

void doGet(HttpServletRequest request, HttpServletResponse response) 

throws ServletException, IOException 
{   ServletConfig config = getServletConfig(); ServletContext context = config.getServletContext(); Enumeration<String> servletParams = config.getInitParameterNames(); Enumeration<String> contextParams = context.getInitParameterNames();   

for (String param : Collections.list(servletParams)) 
{ System.out.println(param); 
}   

for (String param : Collections.list(contextParams)) 
{ System.out.println(param); 
} ...


Como esperado, no console aparece escrito o nome do parâmetro de contexto (contextParam), mas não é mostrado o da servlet (servletParam), pois, apesar de ele estar no web.xml, o método getInitParameterNames() retorna uma Enumeration vazia.
Estou me debatendo com esse problema há horas. Já me assegurei de que o nodo do parâmetro está dentro do nodo da servlet e não estou sobrescrevendo nenhuma versão do método init() (o que é indicado como problema em alguns fóruns). Procurando pela web, não achei caso parecido - talvez até porque seja algo simples demais e eu sou apenas muito iniciante para perceber :). De qualquer forma, agradeço a quem puder dar uma olhada.

A propósito, se ajudar, estou usando TomCat 7.0.34 e Eclipse Helios.