0

我有以下两个问题:

  1. 如何GlassFish 4通过 Eclipse Juno 或其他方式在服务器上启动 java 类(不是 servlet 或 JavaBean)?

  2. 在启动时运行它的正确方法是什么?

我有使用JDNI功能并需要在服务器上运行的 Java 类。怎么做?

我发现了一些关于在服务器启动时运行它的信息,这些信息归结为以下选项:

  • 使用@Startupand@Singleton注释(据我所知,它专门用于 EJB)
  • 实现LifecycleListener接口
  • 实现 Startup接口

Oracle GlassFish Server 应用程序开发指南明确指出:

生命周期侦听器模块已弃用。包括对它们的支持是为了向后兼容。建议改用 org.glassfish.api.Startup 接口。

当我添加org.glassfish.api.*导入并让我的类实现Startup接口Eclipse时,警告我它已被弃用。所以我不确定那里还剩下什么,因为我的班级不是 EJB。无论如何,我继续进行Startup interface并满足它的要求,添加了以下方法:

@Override
public Lifecycle getLifecycle() {
    return Lifecycle.SERVER;
}

在 Eclipse 中,我停止并启动了服务器,但该类似乎没有运行。我的班级有 System.out.println() 调用,但我在服务器和控制台选项卡和服务器日志中都没有看到它的消息。

所以这是我卡住了。

将不胜感激您的建议。

澄清:

我的问题中与启动相关的部分是指服务器(即GlassFish)启动(而不是 Web 应用程序启动)。我需要GlassFish在服务器启动时强制实例化这个类,并让它在服务器生命周期内运行。

它基本上是一个消息侦听器,需要监控队列并响应来自各种发送者的请求。

4

0 回答 0