我有以下两个问题:
如何通过Eclipse Juno或其他方式在GlassFish 4
服务器上启动java类(不是servlet或JavaBean)?
在启动上运行它的正确方法是什么?
我的Java类使用JDNI
功能,需要在服务器上运行。怎么做?
我找到了一些关于在服务器启动时运行它的信息,其中归结为以下选项:
@Startup
和@Singleton
注释(据我所知,这些注释专门用于EJB)LifecycleListener
界面Startup
界面Oracle GlassFish Server应用程序开发指南明确指出:
不推荐使用Lifecycle侦听器模块。支持他们是 包括向后兼容性。实施 建议使用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
在服务器启动时实例化该类,并让它在服务器生命周期内运行。
它基本上是一个消息侦听器,需要监视队列并响应来自各个发件人的请求。