问题标签 [message-driven-bean]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1109 浏览

jakarta-ee - 创建一个 MessageDriven Bean 的多个实例

我在两个不同的应用程序中使用 MessageDriven Bean,我希望它们成为使用单独队列的单独实例。

这个 SO question证实了我的想法,即我应该能够在部署描述符中进行设置(ejb-jar.xml?glassfish-ejb-jar.xml?)。也许简单地覆盖mappedNameMDB 注释中的 就足够了?

如果有人能指出如何在 Glassfish 中执行此操作的一个很好的示例,我将不胜感激(或者如果我在这里混淆了问题,请澄清问题)。

更新:

澄清一下,调用了 MDBAnalyzerBean和调用了 Resource AnalyzerHelper(前者从队列中读取,后者写入队列)。我是否正确假设<ejb-ref-name>对应于name属性并<jndi-name>对应于mappedName属性?

我的 glassfish-ejb-jar.xml 现在看起来像这样。我正在尝试为资源和 MDB 提供唯一的 JNDI 名称,但我不断收到错误消息:

0 投票
2 回答
747 浏览

java - 使用消息驱动 bean 和 Web 服务对 Java EE 应用程序进行功能测试的工具

我需要测试一个完全通过 JMS 和 JAX-WS 与世界对话的完整系统。流程或多或少是这样的:

  1. 由单个 JMS 消息触发,
  2. 查询一些其他外部系统(通过 JMS 或 web 服务)。
  3. 侦听队列中的答案(有时对于 1 个请求,预期会有很多回复)。
  4. 处理需要的内容并将回复(通过 JMS)发送回调用系统(也是每个触发消息的一个或多个回复)。

我一直在寻找一种工具,它可以:

  • 模拟外部系统(即侦听队列的另一端,分析请求并根据请求的内容进行回复),
  • 连接到不同的消息代理,Active MQ 和 Websphere MQ 是最需要的,
  • 创建测试用例逻辑,
  • 将结果与预期行为进行比较。

到目前为止,唯一接近的是 jMeter;它仅缺乏在队列中侦听的能力。还有其他想法吗?可以是免费的或商业的。

最后,在我看来,我必须部署一系列消息驱动的 bean 作为模拟,但我想确保我不会重新发明轮子。

0 投票
1 回答
1083 浏览

java - 如何在使用 AOP (ejb3-interceptors-aop.xml) 覆盖 MDB 上的注释时附加字符串?

我正在尝试使用文件 ejb3-interceptors-aop.xml 覆盖 MDB(部署在 Jboss 上)上的注释

注释的形式为:

但是,当我在 XML 文件中使用它时:

它抛出一个词法错误:遇到:“+”,之后:“”

知道如何解决这个问题吗?

0 投票
1 回答
3544 浏览

jboss - MDB 事务重试间隔

我们可以控制 MDB 中的事务重试间隔吗?如果是这样,请提供示例或将我引导至文档。我们希望为 MDB 事务设置 3 分钟的时间间隔。希望是,如果查询第一次失败,那么它会在 3 分钟后重试。

0 投票
2 回答
14471 浏览

jms - JavaEE 6:如何在独立的 JMS 客户端中注入 JMS 资源?

我无法javax.jms.ConnectionFactory注入我的独立 JMS 客户端。我在下面的代码中得到了java.lang.NullPointerException一个connectionFactory.createConnection()

JmsClient.java

我使用 Glassfish 3.1 管理控制台在Open MQ (MoM) 创建了相应的连接工厂和目标资源。

有人可以帮我理解我错过了什么吗?

0 投票
3 回答
7362 浏览

java - 在 JBoss EAP 5.1 中为特定的 MDB 配置 maxSession 属性

如何使 MDB 用户可配置的 maxSession 值?

有一个 MDB 用于侦听来自特定队列的消息。它被定义为注解。

@ActivationConfigProperty(propertyName = "maxSession", propertyValue = "5").

为了改变 maxSession 的值,每次都必须编译代码。

有没有办法让它用户可配置,这样就不需要构建并且不需要重新启动 jboss?

请帮忙。

0 投票
1 回答
530 浏览

ejb - 停止将消息重新传递到 MDB

考虑以下场景:

我有一个接收消息的 MDB。收到此消息后会触发一系列操作。一些调用在具有 Requires_New 作为事务属性的 EJB 中被隔离,并且它们都成功。在事务的最后,我调用 sessionContext.setRollbackOnly()。

这会导致消息再次被重新传递到 MDB 吗?

0 投票
1 回答
2245 浏览

jms - JMS/MDB 回滚

我们有一个应用程序,它读取 JMS 并执行一些数据库事务,所有这些都作为一个 XA 事务的一部分。如果我们发现消息有问题,我们想要回滚数据库,但我们不希望回滚 JMS让我们再次阅读该消息(如果之前启动了回滚,我们不希望 MDB 再次触发整个过程)。

0 投票
1 回答
629 浏览

session - SessionContext RollBackOnly 和 MDB 的

如果我调用其中一个 EJB 的 this.sessionContext.setRollbackOnly() ,让 MDB 在事务中接收消息,然后执行多个 EJB 调用,这会触发 JMS 消息的重新传递吗?

所有 EJB 方法都标有 Requires_New 事务属性。

0 投票
5 回答
5227 浏览

java - 如何在 JUnit 中构建自动回复 JMS 侦听器(在 OpenEJB 中)

我有一个 EJB 向 JMS 队列发送消息并等待它的回复。我想测试EJB,很容易使用OpenEJB来做EJB的JUnit测试。但问题是这个 EJB 将等待 JMS 响应继续处理。

虽然我可以在我的 junit 代码中发送消息,但因为 EJB 仍在进行中,所以在 EJB 完成之前我无法运行它。

第二种解决方案是我可以初始化一个 MDB 来监听和回复来自 EJB 的 JMS 消息,但问题是 MDB 必须在 src\main\java 中,而不能在 src\test\java 中。问题是这只是一个测试代码,我不应该将它打包到生产环境中。(我使用Maven)

或者我应该使用模拟对象?