[英]Issues with executing Servlet Events
我已经创建了侦听器类,
import javax.servlet.*;
import javax.servlet.http.*;
import javax.swing.*;
public class ContextListener implements ServletContextListener
{
public void contextInitialized(ServletContextEvent sce)
{
JOptionPane.showMessageDialog(null,"Context Initialized");
}
public void contextDestroyed(ServletContextEvent sce)
{
JOptionPane.showMessageDialog(null,"Context Destroyed");
}
}
我的欢迎页面是一个servlet,如下所示:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class WelcomeContextListener extends HttpServlet
{
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out=response.getWriter();
out.println("<h1>Hello World</h1>");
}
}
我在web.xml文件中添加了以下代码,
<listener>
<listener-class>ContextListener</listener-class>
</listener>
现在,当我运行上述Web应用程序时,会发生以下错误,
部署期间发生错误:加载应用程序时发生异常:java.lang.IllegalStateException:ContainerBase.addChild:开始:org.apache.catalina.LifecycleException:java.awt.HeadlessException。 请参阅server.log以获取更多详细信息。 该模块尚未部署。
我正在使用Netbeans IDE。 在这种情况下有什么建议可以帮助我吗??? 提前致谢。
首先,您不应该在服务器的Web环境中的Servlet上下文中使用JOptionPane
,没人会看到使用System.out.println
的消息并遵循日志文件或某些log4j日志类。
然后
<listener-class>ContextListener</listener-class>
应该是整个包装
<listener-class>com.blahsomething.ContextListener</listener-class>
对于java.awt.HeadlessException
将此添加到您的tomcat启动参数
-Djava.awt.headless=true
要在Netbeans IDE上配置服务器,如果我没记错的话,它应该在
Tools -> Servers
在其中,您会找到一个启动选项卡,您可以在其中配置参数。
大多数Servlet容器都以awt / swing无头模式工作。 在这种模式下,许多awt / swing组件不起作用,请参见http://www.oracle.com/technetwork/articles/javase/headless-136834.html 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.