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

我怎样才能让MDB在我的野蝇上部署到最后

张淳
2023-03-14

发生在我身上的是MDB接收消息并尝试处理它们,甚至我的服务器也没有完全启动

知道怎么解决这个问题吗?

共有1个答案

柯清野
2023-03-14

您可以通过以下两种技术之一确定服务器启动是否完成:

  1. 使用ServletContextListener,一旦您的应用程序部署完成,服务器将调用ServletContextListener.context初始化方法
  2. 使用mbean的支持,你可以通过JMX接口查询mBean并计算出服务器状态是否启动。但是请注意,只有在这种情况下,你的代码才会被绑定到野蝇。

一旦您决定了计算服务器启动状态的选项,您需要在MDB的postconstruct方法中检查它,并且仅在服务器启动时才继续。

@MessageDriven(...)
public class MyMdb implements MessageListener {
    @PostConstruct
    public void init() {
        // check if server has started here 
        //if server is not started, sleep and re-check again.
    }

    public void onMessage(Message message) {

    }
}    
 类似资料:
  • 我有一个web应用程序,在Tomcat上部署该应用程序通常需要大量的时间。我怀疑某个地方的数据库连接正在等待超时,但这只是一种猜测,我想确定是什么导致了中断,这样我就可以解决这个问题。谁能给我提个建议吗?我是不是应该在Tomcat加载战争时对它进行侧写并在那里寻找线索呢?如果是的话,有没有适合初学者的教程? 如果这很重要,我的web应用程序使用spring和Hibernate。我的一个同事告诉我,

  • 我有一个web应用程序部署为使用Wildfly的爆炸战争。我想要得到的是 null 目前,我所处的情况是,我可以选择其中一个或另一个,但不能同时获得这两个选项(这意味着,要么每个jsp更改都强制进行新的部署,要么.class文件不强制进行新的部署)。 wildfly的当前配置(使用版本8.1.0)为 此外,我还发现,无论我在deployment-scanner配置中设置了什么,一旦服务器启动并运行

  • 我试图在Wildfly(命令行)上部署一个war文件,方法是将旧文件的名称(例如更改为)并复制一个名为到部署文件夹。在我的另一个终端上,我可以看到自动部署扫描程序正在运行并部署新文件,但当我尝试通过URL访问应用程序时,我得到了404。日志中没有显示错误,因此我不知道发生了什么或该做什么。 谢谢。

  • 我知道如何在WAR项目中设置上下文路径。在META-INF文件夹中创建一个context.xml文件,并添加以下几行 但是我不知道如何在没有上下文的情况下在JAR项目中进行设置.xml文件。我尝试了以下方法,但无法正常工作 server.servlet.context-path=/my-project-path 正在嵌入 Tomcat 的 netbeans 中工作。 但不在JBoss/wildly

  • 我有一个关于寻找矩形(曲线上方)的区域的问题。我想找到类似于,其中。 我有两个(x;y)的,可以找到: ) 我的问题是:如果我没有函数,但有(x;y),如何使用数值积分。例如,在matlab中,: 在C++中,我有:

  • 如果我的问题看起来很长,我道歉。我会尽量简明扼要。 问题:编写一个程序,将以千克为单位的估算重量转换为磅。如果用户输入负值,程序应要求玩家重新输入数字。 我创建了三个函数。第一个函数-返回玩家输入第二个函数-返回以磅为单位的权重第三个函数-如果权重为正,返回以磅为单位的值,或者如果值为负,要求另一个输入。 如果相同的值为正数,我的程序将返回正确的值。然而,当我输入一个负浮点数时,我的程序将永远打印