问题标签 [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 投票
1 回答
2065 浏览

jpa - Java EE 6 + JPA - 异常:消息驱动 Bean 不能被管理 bean

我创建了一个Enterprise Application CustomerApp也生成了两个项目CustomerApp-ejbCustomerApp-war. 在 中CustomerApp-ejb,我创建了一个 SessionBean 调用CustomerSessionBean.java,如下所示。

CustomerApp-war现在我可以很好地部署了。但是一旦我创建了一个消息驱动 Bean,我就不能再部署CustomerApp-war了。当我创建NotificationBean.java(消息驱动的 bean)时,在project destination选项中,我单击添加,并拥有NotificationQueueDestination NameDestination Type队列。下面是代码

服务器日志说Message Driven Bean cant be managed bean。好吧,我并不是说要管理 bean。我没有@ManagedBean在代码中????

编辑:这是服务器日志

0 投票
1 回答
1306 浏览

java - jboss5.1上的seam和mdb问题

使用 mdb 作为接缝组件时出现问题。在豆子中,我注入了一些其他的接缝成分。

问题是,当服务器在崩溃后重新启动并部署 mdb 时,它开始读取消息,但接缝尚未初始化,我遇到了异常(如上所列)。如果我在队列为空的情况下启动服务器并在服务器启动后将消息提交到队列,它工作正常。

是否有可能在服务器启动时停止或延迟发送消息并仅在接缝完全正常运行时才开始发送它们?

我在豆子上尝试了@Depends antotatin,但没有成功

我的环境:jboss5.1 GA seam 2.2.0 GA jboss messages 1.4

任何帮助将不胜感激

启动时的错误:

11:24:20,477 错误 [TxPolicy] javax.ejb.EJBTransactionRolledbackException:java.lang.IllegalStateException:尝试在已初始化的应用程序之外调用 Seam 组件

11:24:30,483 错误 [TxPolicy] javax.ejb.EJBException:无法获取池信号量,strictTimeout=10000

0 投票
3 回答
8782 浏览

java - Weblogic 10.3 MDB 抛出 javax.sql.DataSource 异常

以下是我正在使用的应用程序:

  1. 网络逻辑 10.3.3
  2. Websphere MQ 7.0
  3. Oracle 11g 快捷版 (DB)

以下是当前的流程:

  1. 一条消息由 Weblogic 从 Websphere MQ 队列中读取并由 MDB 处理
  2. MDB 将消息保存到 DB
  3. MDB 将消息写入另一个 Websphere MQ 队列

这是一个 XA 事务,因此如果上述任何操作失败,消息将返回到原始队列。

这是我在 Websphere MQ 队列上放置消息以启动进程时出现的错误:

这是我在代码中连接到数据库的方式

到目前为止,我已经完成了以下故障排除:

  1. 我检查了我的数据源以确认 jndi 名称确实是“datasource/oracle-11g
  2. 在数据源设置期间,我已成功通过测试配置按钮连接到数据库
  3. 我已经验证消息表确实存在于数据库中

无论如何要打开日志记录,以便我可以查看到数据库的任何特定 JDBC 连接错误?

0 投票
2 回答
840 浏览

java - WebLogic下的贪婪线程正在抓取太多的JMS消息

我们在使用 WebLogic 8.1 时遇到了一个问题,但无法解决。我们经常将一百条或更多条 JMS 消息排队,每条消息都代表一个工作单元。尽管每条消息的大小和外观都相同,但一条消息可能只需要几秒钟即可完成,而下一条则代表 20 分钟的可靠处理。

我们的问题是,我们处理这些消息的每个消息驱动 bean 最终都在一个线程上,该线程似乎一次抓取 10 条消息(我们认为它是作为 WebLogic 优化来完成的,以避免遇到一遍又一遍地排队等待小消息)。然后,当一个线程一个接一个地完成它所有的小工作并且没有新的工作进入时,我们最终会得到一个单线程日志卡在一个长时间运行的工作上,还有多达九个其他项目等待完成,尽管其他线程是空闲的并且可以在这些工作单元上启动的事实。

现在我们正处于转换到 WebLogic 10 的阶段,因此很自然地回到这个问题并找出我们可以实施的任何解决方案,以便:a) 每个线程只在一个时间来处理并让所有其他人在传入队列中等待,或者 b) 它会自动将等待消息(即使是已经分配给特定线程的消息)重新分配给空闲线程。有任何想法吗?

0 投票
2 回答
1984 浏览

java - ActiveMQ 消息驱动 bean 到 JSF

我目前正在使用后端的消息驱动 bean (EJB3) 从 ActiveMQ 中读取数据。我面临的问题是,我必须在消息驱动 bean 中收到来自 ActiveMQ 的消息后立即更新 JSF 页面中的表。

我可以尝试的技术的任何建议都会很棒。我目前正在使用 primefaces 和 glassfish。

谢谢

0 投票
1 回答
297 浏览

unicode - JbossTextMessage Unicode 转换在 Linux 中失败

我正在尝试上传一个 xml (UTF-8) 文件并将其发布到 Jboss MQ 上。从侦听器读取文件时,UTF-8 字符仅在 Linux 上运行的 Jboss (jboss-5.1.0.GA-3) 实例中格式不正确。

例如:BORÅS在 Linux jboss 实例中被转换为BOR¿S 。

当我复制并配置相同的 jboss 实例以在 Windows (SP3) 上运行时,它可以完美运行。

我还通过在 .bashrc 和 run.sh 文件中包含 JAVA_OPTS=-Dfile.encoding=UTF-8 来更改 Linux 中的默认设置。

Listener JbossTextMessage.getText() 内部带有错误指定的字符。

有什么建议或解决方法吗?

0 投票
0 回答
407 浏览

unit-testing - 使用@Depends 运行时接缝测试失败

我有一个标有@Depends 的MDB,使它依赖于我的战争,当我将应用程序部署到服务器时它工作正常,但是当我尝试运行我的测试时,测试失败......由于一些错误的配置而导致接缝......有什么提示可以解决这个问题吗?我猜嵌入式 jboss 以某种不同的方式处理这个问题?

我使用:接缝 2.2.1 jboss 5.1 testNG

我运行测试时的错误:

0 投票
2 回答
3620 浏览

jms - Jboss 5.1 ActiveMQ 5 独立代理 MDB 设置

我正在尝试将 ActiveMQ 5 附带的示例代理与部署在 JBoss 5.1 AS 上的 MDB 一起使用。

我已将 activemq rar 部署到部署目录。我已经部署了 activemq-jms-ds.xml 来部署/消息传递,它定义了我的连接工厂。我让代理在 localhost:61616 上运行,如 connectionfactory 配置中所定义。

但是当我尝试将我的 MDB 部署到 jboss 时,我得到了这个错误。

我现在真的打算使用标准代理,因为我不想定义客户端来将消息放入队列。我更喜欢使用示例代理附带的 Web 控制台。有什么我错过的,因为我似乎无法弄清楚什么是错的。

注意:我已经尝试过ActiveMQ Jboss 设置指南,但我担心它对于 ActiveMQ 4 来说已经过时了。

0 投票
3 回答
4911 浏览

jakarta-ee - 为什么不使用会话 Bean 而不是消息驱动 Bean?

我想知道,为什么不使用 Session Beans 而不是 Message Driven Beans ?

如果您可以从 EJB 调用远程方法,那么为什么还要使用消息驱动 Bean(它比会话 bean 更难开发)来发送/接收消息?

消息驱动 Bean 在哪些情况下有用?

0 投票
1 回答
794 浏览

java - 在 OpenEJB 中部署具有多个队列名称的 MDB 时出错

升级到 OpenEJB 3.1.3 后,Tomcat/OpenEJB 启动时出现以下错误:

以下 MDB 导致此错误:

因为改成之后

错误消失了。

如您所见,我们在注释中使用单个类和逗号分隔的队列名称定义了两个侦听器。这在 3.1.2 中完美运行(至少看起来如此),但现在它给了我们上面的错误(虽然该错误似乎并没有阻止 MDB 的部署,但 JMX 监控对我们来说至关重要)。

我也找不到任何@MessageDriven具有多个队列(单个 MDB 类、多个逗号分隔的队列名称)的使用注释示例。这是错误的做法吗?它是记录在案的功能吗?3.1.3 中发生了什么变化使 JMX 不能再注册 MDB?