Why does config.getInitParameter(String)
always return null
in the following code example?
public void init(ServletConfig config) throws ServletException
{
super.init(config);
filename = config.getInitParameter("addressfile");
This is web.xml file
<servlet>
<servlet-name>ListManagerServlet</servlet-name>
<servlet-class>savva.listmanagerservlet.ListManagerServlet</servlet-class>
<init-param>
<param-name>addressfile</param-name>
<param-value>d:\temp\demo.txt</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ListManagerServlet</servlet-name>
<url-pattern>/ListManagerServlet</url-pattern>
</servlet-mapping>
UPD: Eclipse EE Indigo, Java 1.6, Tomcat 7.0
The canonical way is to just use the inherited GenericServlet#getInitParameter()
in the argumentless init()
method (and remove any init(config)
method).
@Override
public void init() throws ServletException {
filename = getInitParameter("addressfile");
}
If that still doesn't work, then your web.xml
is not properly been deployed, or you have a typo in the parameter name, or you actually accessed a different instance variable than filename
to use/test it.
Ensure your servlet is calling super.init(config) on its init method, else it won't work.
Make sure you have really deployed the proper web.xml. Also check with config.getInitParameterNames()
what parameters have been found.
It's never a good idea to override the init(config)
method. Instead use the provided init()
convenience method and do a getServletConfig()
to get the configuration parameters:
http://docs.oracle.com/javaee/1.2.1/api/javax/servlet/GenericServlet.html#init() http://docs.oracle.com/javaee/1.2.1/api/javax/servlet/GenericServlet.html#getServletConfig()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With