问题标签 [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.
jakarta-ee - 创建一个 MessageDriven Bean 的多个实例
我在两个不同的应用程序中使用 MessageDriven Bean,我希望它们成为使用单独队列的单独实例。
这个 SO question证实了我的想法,即我应该能够在部署描述符中进行设置(ejb-jar.xml?glassfish-ejb-jar.xml?)。也许简单地覆盖mappedName
MDB 注释中的 就足够了?
如果有人能指出如何在 Glassfish 中执行此操作的一个很好的示例,我将不胜感激(或者如果我在这里混淆了问题,请澄清问题)。
更新:
澄清一下,调用了 MDBAnalyzerBean
和调用了 Resource AnalyzerHelper
(前者从队列中读取,后者写入队列)。我是否正确假设<ejb-ref-name>
对应于name
属性并<jndi-name>
对应于mappedName
属性?
我的 glassfish-ejb-jar.xml 现在看起来像这样。我正在尝试为资源和 MDB 提供唯一的 JNDI 名称,但我不断收到错误消息:
java - 使用消息驱动 bean 和 Web 服务对 Java EE 应用程序进行功能测试的工具
我需要测试一个完全通过 JMS 和 JAX-WS 与世界对话的完整系统。流程或多或少是这样的:
- 由单个 JMS 消息触发,
- 查询一些其他外部系统(通过 JMS 或 web 服务)。
- 侦听队列中的答案(有时对于 1 个请求,预期会有很多回复)。
- 处理需要的内容并将回复(通过 JMS)发送回调用系统(也是每个触发消息的一个或多个回复)。
我一直在寻找一种工具,它可以:
- 模拟外部系统(即侦听队列的另一端,分析请求并根据请求的内容进行回复),
- 连接到不同的消息代理,Active MQ 和 Websphere MQ 是最需要的,
- 创建测试用例逻辑,
- 将结果与预期行为进行比较。
到目前为止,唯一接近的是 jMeter;它仅缺乏在队列中侦听的能力。还有其他想法吗?可以是免费的或商业的。
最后,在我看来,我必须部署一系列消息驱动的 bean 作为模拟,但我想确保我不会重新发明轮子。
java - 如何在使用 AOP (ejb3-interceptors-aop.xml) 覆盖 MDB 上的注释时附加字符串?
我正在尝试使用文件 ejb3-interceptors-aop.xml 覆盖 MDB(部署在 Jboss 上)上的注释
注释的形式为:
但是,当我在 XML 文件中使用它时:
它抛出一个词法错误:遇到:“+”,之后:“”
知道如何解决这个问题吗?
jboss - MDB 事务重试间隔
我们可以控制 MDB 中的事务重试间隔吗?如果是这样,请提供示例或将我引导至文档。我们希望为 MDB 事务设置 3 分钟的时间间隔。希望是,如果查询第一次失败,那么它会在 3 分钟后重试。
jms - JavaEE 6:如何在独立的 JMS 客户端中注入 JMS 资源?
我无法javax.jms.ConnectionFactory
注入我的独立 JMS 客户端。我在下面的代码中得到了java.lang.NullPointerException
一个connectionFactory.createConnection()
。
JmsClient.java
我使用 Glassfish 3.1 管理控制台在Open MQ (MoM) 创建了相应的连接工厂和目标资源。
有人可以帮我理解我错过了什么吗?
java - 在 JBoss EAP 5.1 中为特定的 MDB 配置 maxSession 属性
如何使 MDB 用户可配置的 maxSession 值?
有一个 MDB 用于侦听来自特定队列的消息。它被定义为注解。
@ActivationConfigProperty(propertyName = "maxSession", propertyValue = "5")
.
为了改变 maxSession 的值,每次都必须编译代码。
有没有办法让它用户可配置,这样就不需要构建并且不需要重新启动 jboss?
请帮忙。
ejb - 停止将消息重新传递到 MDB
考虑以下场景:
我有一个接收消息的 MDB。收到此消息后会触发一系列操作。一些调用在具有 Requires_New 作为事务属性的 EJB 中被隔离,并且它们都成功。在事务的最后,我调用 sessionContext.setRollbackOnly()。
这会导致消息再次被重新传递到 MDB 吗?
jms - JMS/MDB 回滚
我们有一个应用程序,它读取 JMS 并执行一些数据库事务,所有这些都作为一个 XA 事务的一部分。如果我们发现消息有问题,我们想要回滚数据库,但我们不希望回滚 JMS让我们再次阅读该消息(如果之前启动了回滚,我们不希望 MDB 再次触发整个过程)。
session - SessionContext RollBackOnly 和 MDB 的
如果我调用其中一个 EJB 的 this.sessionContext.setRollbackOnly() ,让 MDB 在事务中接收消息,然后执行多个 EJB 调用,这会触发 JMS 消息的重新传递吗?
所有 EJB 方法都标有 Requires_New 事务属性。
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)
或者我应该使用模拟对象?