我正在编写一个Java程序,它将继续监听任何消息的JMS / ActiveMQ队列。当队列中发布消息时,该程序将获取消息并进行处理。这个程序有一个main()
方法。现在我想在JBoss / Wildfly中部署这个程序。已经在JBoss上部署了一些Web应用程序。我想在JBoss上部署这个程序以避免手动启动。每当JBoss服务器启动时,该程序也应运行并侦听队列。
如果不能使用main方法,我需要一些关于此要求的替代解决方案的建议。
在应用程序服务器中,您无法运行Java应用程序。您必须将Web应用程序部署为战争或耳朵。
你可以做什么:
1)在Web应用程序中转换java独立应用程序并定义servlet。这个servlet将启动你的进程。因此,在这种情况下,当服务器启动时,它将部署您的包(war或ear),初始化您的servlet,然后启动您的进程。 2)使用调度程序(linux quartz)在Web应用程序中转换java独立应用程序以启动进程。这比第一个选项更好,因为您不必创建servet。
PS:当你必须运行java独立应用程序时,通常我们使用其他服务来完成这项工作(如linux中的Control-M或cron选项卡)
您应该使用消息驱动Bean(MDB)。 This教程现在有点老了,但它仍然适合你。