当前位置: 首页 > 知识库问答 >
问题:

上下文Listener导致玻璃鱼错误

司马彬
2023-03-14

我试图在Netbeans中运行一个非常基本的servlet ContextListener程序。我已经很好地编码了它,但是在最后时刻,当我试图执行它的时候,程序的输出标签给了我如下所示的错误..

Starting GlassFish Server 3.1.1
GlassFish Server 3.1.1 is running.
In-place deployment at C:\Users\Maunil\Documents\NetBeansProjects\ServletContextListener\build\web
Initializing...
deploy?DEFAULT=C:\Users\Maunil\Documents\NetBeansProjects\ServletContextListener\build\web&name=ServletContextListener&contextroot=/ServletContextListener&force=true failed on GlassFish Server 3.1.1 
 Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.awt.HeadlessException. Please see server.log for more details.
C:\Users\Maunil\Documents\NetBeansProjects\ServletContextListener\nbproject\build-impl.xml:721: The module has not been deployed.
See the server log for details.

这是我的ContextListener.java档案

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.swing.JOptionPane;

public class ContextListener implements ServletContextListener{

private ServletContext cont = null;

@Override
public void contextInitialized(ServletContextEvent sce) {
    this.cont = sce.getServletContext();
    System.out.println("Servlet Initialized....");
    JOptionPane.showMessageDialog(null,"Servlet Initialized.......!!!!!!");
    throw new UnsupportedOperationException("Not supported yet.");
}

@Override
public void contextDestroyed(ServletContextEvent sce) {
    System.out.println("Servlet Destroyed....!!!");
    JOptionPane.showMessageDialog(null,"Servlet Destroyed.......!!!!!!");
    this.cont=null;
    throw new UnsupportedOperationException("Not supported yet.");
}

}

这是网络.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">
<listener>
    <listener-class>Listener.ContextListener</listener-class>
</listener>
<servlet>
    <servlet-name>DemoServlet</servlet-name>
    <servlet-class>servlet.DemoServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>DemoServlet</servlet-name>
    <url-pattern>/servlet/DemoServlet</url-pattern>
</servlet-mapping>
<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>

Netbeans没有显示任何语法错误。servlet文件是Netbeans IDE生成的默认文件。令人困惑的是…当我试图在没有侦听器进入web的情况下执行它时。xml servlet成功执行。但是在.xml文件中的ContextListener类条目之后,会导致deploymet错误。

我想找出IDE是否显示错误。那我哪里做错了??我是否错误地将侦听器类注册到 xml 文件?或者需要配置玻璃鱼..!!!

请引导我通过它...

提前...

共有1个答案

宋原
2023-03-14

上下文侦听器抛出一个<code>java.awt.HeadlessException。这很可能是因为您试图使用类<code>javax.swing。JOptionPane在无头环境中,这是不允许的。

在无头servlet容器中使用大多数Swing/AWT类是不可能的,因为它们需要一个图形环境来运行。

 类似资料:
  • 我已经完成了在glassfish v4中添加SSL证书的步骤。我已经通过浏览器和java swing客户端验证了它的有效性(我在客户端使用apache的http客户端库) 什么不工作是管理控制台!由于成功导入SSL,我不能再连接到管理控制台,http://www.myhost.com:4848,我仍然得到登录屏幕,总是工作的管理员用户名/密码组合已停止工作。我也注意到当尝试部署一个网络应用程序从n

  • 这是我在尝试更改主密码时看到的。。。我尝试了几乎所有字符、数字、特殊字符的组合/home/larry$/home/glassfish/bin/asadmin更改主密码--savemasterpassword=true输入当前主密码

  • 问题内容: 我正在下载Java EE,似乎有许多不同的下载选项。我不确定应该选择哪一个。Java EE似乎与GlassFish打包在一起。谁能告诉我这是什么,它对我有什么好处? 其次,如果我只是想玩转并了解Java EE,那么对我来说下载的是什么?列出选项的链接在下面… Java EE下载选项 问题答案: 首先,将近五年前它被称为Java EE。首字母缩略词J2EE仍指5.0之前的旧Java EE

  • 我将mysql驱动程序放入glassfish/admin1/lib,我在尝试与GlassFish 3.1.2建立连接时收到此错误 为SimpleCRUD_ConnectionPool Ping连接池失败。类名错误或未为:com设置类路径。mysql。jdbc。jdbc2。可选择的MysqlDataSource请检查服务器。记录更多细节。 野兔配置: 池名称:SimpleCRUD_Connectio

  • 问题内容: 我有一个用@Schedule注释的方法,该方法有时会被容器调用。 问题是在某些情况下,我希望此方法引发异常以导致正在进行的事务回滚。但是,如果我执行两次以上,计时器将被删除,不再调用! 我知道我可以使用配置在domain.xml中重新安排计时器 但是我的问题是,在部署应用程序时可以配置此设置吗? 在以下位置找不到它: 是否可以通过编程方式进行某些操作? (我将这样的服务器配置放在配置文

  • 在玻璃鱼网里。xml您链接了doctype描述文件,如http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd. 当我们的应用程序被部署时,这是由glassfish下载和解析的。glassfish.org不可用了,所以我们改成了http://glassfish.java.net,但即使这样也不可用了。有人知道,在哪里可以找到dtd吗? 也许我们可以