草庐IT

java - MessageConsumer 不消费消息

我的应用程序在Jboss7.1.1上运行。我有一个每分钟运行一次的调度程序,需要检查DLQ中是否有消息并在数据库中进行一些更新。我编写了一个消息消费者来监听预定义的自定义DLQ。问题是我可以看到自定义DLQ中有消息,但consumer.receiveNoWait()总是返回null。下面是创建消费者的代码:/*thisisrunningfineandcreatingtheconsumer*/publicDestinationHandlerImpl(ConnectionFactoryconnectionFactory,Destinationdestination,booleanuseTr

java - 嵌入式 ActiveMQ 代理需要哪些依赖项?

我正在尝试使用嵌入式ActiveMQ代理进行单元测试,如下所述:http://activemq.apache.org/how-to-unit-test-jms-code.html我需要包含哪些Maven依赖项?目前我只有这些:javaxjavaee-api6.0providedorg.apache.activemqactivemq-core5.5.0这是我得到的:java.lang.ClassFormatError:AbsentCodeattributeinmethodthatisnotnativeorabstractinclassfilejavax/jms/JMSException尝

java - 如何在ssl中激活mq

我正在尝试通过jms(activemq)发送消息,但我希望它采用ssl协议(protocol)。它现在实际上在tcp中工作。我使用jndi,带有一个虚拟主题和2个队列。有人可以帮我吗,我试过了,但我卡住了,服务器无法启动:http://activemq.apache.org/how-do-i-use-ssl.html谢谢编辑:日志显示:“对实体“needClientAuth”的引用必须以“;”结尾分隔符。” 最佳答案 我会回答我自己的问题:首先在..../apache-activemq-5.11.1/conf/activemq.xm

java - 什么时候消息传递(例如 JMS)是多线程的替代方案?

我在一个数据处理应用程序上工作,在这个应用程序中,通过将多个工作单元放在一个消息队列上来实现并发,消息驱动bean(MDB)的多个实例会监听该消息队列。除了以这种方式实现并发之外,我们没有任何特定理由使用消息传递基础结构和MDB。这让我开始思考为什么使用多线程无法实现同样的效果。所以我的问题是,在什么情况下可以使用异步消息传递(例如JMS)作为多线程的替代方法来实现并发?使用一种方法相对于另一种方法有哪些优点/缺点。 最佳答案 它不能作为多线程的替代品,它是一种实现多线程的方式。这里有三种基本的解决方案:你负责队列的两端;您负责发送

java - Weblogic 12.1.3.0.0 - Ehcache JMS 复制 - InvalidExpressionException : Expression : "cacheManagerUniqueId

我有基于Spring的应用程序和EhcacheJMS复制。我需要将此应用程序部署到Weblogic12,但是出现以下部署失败错误:javax.jms.InvalidSelectorException:weblogic.messaging.kernel.InvalidExpressionException:Expression:"cacheManagerUniqueId600767500怎么了?weblogic-application.xmljavax.validation.*javax.validation.spi.*-->javax.persistence.spi.*javax.pe

java - JMS MessageConsumer 的 messageListener 是推还是拉?

当我在我的队列MessageConsumer对象上设置一个messageListener时,到底发生了什么。MessageConsumer对象是否在后台进行某种轮询,或者这是JMS服务器进行的真正推送?Java消息服务(O'ReillyJava系列),DavidA.Chappell、RichardMonson-Haefel和MarkRichards,p10第1章:点对点点对点消息传递模型传统上是基于拉取或基于轮询的模型,其中从队列中请求消息而不是自动推送到客户端http://docs.oracle.com/javaee/1.4/tutorial/doc/JMS4.html#wp7917

java - 如何检测 Apache Camel 中断开/恢复的 JMS 连接?

我们正在使用ApacheCamel(Camel2.10.3,基于JavaDSL)构建一个集成项目。我们有一个从数据库中提取数据的路由(我们称之为IN_DB),每天执行一些逻辑并插入另一个数据库(OUT_DB),另一个订阅XML数据的JMS主题的路由,做一些逻辑并将其全天插入同一个数据库(OUT_DB)。要求是,当JMS主题连接因任何原因中断时,我们会无限期地尝试重新连接,一旦重新连接成功,我们需要返回数据库(IN_DB)并进行另一次加载以填补空缺话题在哪里。我的问题是我们如何在Camel中执行此逻辑(“我已连接,然后断开连接,现在我再次连接”)?当主题下降时,以主题消费者开始的路由会发

java - 当 Body 不可分配给类时如何调试 JMS?

我正在使用JavaEEJMS队列。我将对象发送到队列中,然后使用MDB接收它们。将消息正文(使用getBody())读入对象时出现以下异常:javax.jms.MessageFormatException:Bodynotassignabletoclass...有什么方法可以从中得到一个更具描述性的错误来说明为什么它不可分配?我还尝试进入Debug模式,看看什么样的Message对象到达了MDB,但据我所知它是序列化的,所以它并不是很有用。对象类型在发送到队列之前在调试器中被正确识别。附加信息:如果我手动创建一个空对象并发送它,它会被正确识别。生产对象来自REST端点并包含许多属性,并在

java - 为 JMS 监听器处理 Spring Security 的首选方法是什么?

我有一个有点单一的Java应用程序,它围绕我的业务服务层的Spring@Servicebeans构建。通常,我的每个业务服务方法都有SpringSecurity注释(例如@PreAuthorize)来为该操作执行适当的授权规则。在主要的web应用程序流程中,这工作得很好;每个Web请求都隐含地由sessioncookie等处理身份验证。但是,当涉及到与其他“内部”系统的各种集成点时,我看不出一个明确的解决方案。例如,我将使用JMS队列中的方法,该队列已经在代理中定义了自己的身份验证和授权规则,因此我想隐式地“信任”我收到的消息。然而,就目前情况而言,像这样的足够简单的Camel路线:W

java - session 事务消费者或生产者中的消息代理异常处理

我想使用SAGA我的SpringBoot微服务中的模式。例如,在客户订单中,当订单创建时,会产生一个类似OrderCreatedEvent的事件,然后在客户微服务中OrderCreatedEvent上的监听器更新客户信用并产生CreditUpdateEvent和...。我使用session事务处理JmsTemplate来生成事件。在JmsTemplate的javadoc中表示JMS事务在主事务之后提交:ThishastheeffectofalocalJMStransactionbeingmanagedalongsidethemaintransaction(whichmightbeana