我正在使用運行在Tomcat 7.0.41中的NetBeans編寫J2EE Web應用程序。我創建了一個部署描述符web.xml,其中包含四個上下文參數。我創建了一個擴展HttpServlet的類。在類的init方法中,當我從ServletConfig實例調用getInitParameterNames時,我得到一個空的枚舉。最終,我懷疑Tomcat根本就沒有讀取web.xml文件,因爲我必須訴諸使用@WebServlet註釋甚至完全訪問servlet。任何人都可以提出爲什麼我不能訪問context-params和/或爲什麼Tomcat沒有讀取web.xml文件?無法從web.xml讀取上下文參數
下面是web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
<param-name>preptimeminutes</param-name>
<param-value>60</param-value>
</context-param>
<context-param>
<param-name>preptimehours</param-name>
<param-value>0</param-value>
</context-param>
<context-param>
<param-name>servings</param-name>
<param-value>1</param-value>
</context-param>
<context-param>
<param-name>calories</param-name>
<param-value>100</param-value>
</context-param>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
下面是init方法的代碼:
@Override
public void init(ServletConfig servletConfig) throws ServletException
{
int preptemp;
String tempString1, tempString2;
Enumeration<String> e = servletConfig.getInitParameterNames();
this.servletConfig = servletConfig;
servletContext = servletConfig.getServletContext();
try
{
while(e.hasMoreElements())
{
servletContext.log(e.nextElement());
}
} ...
}
感謝,
傑森Mazzotta
這將有助於看到你的web.xml和從你的servlet代碼段。 – cosjav
是否將web.xml部署到正確的位置?它在啓動時是否有任何錯誤? –
啓動時未報告錯誤。 web.xml文件位於context.xml中列出的docBase的WEB-INF子目錄中。 – user2985081