我有一个独立的 hornetq 服务器和一个使用它的 JMS 客户端!关于 hornetq 用户手册,我应该只将 jnp-client.jar 和 jms.jar 添加到客户端类路径。但是当我尝试使用 hornetq 服务器(生成和使用消息)时,抛出了几个 ClassNotFoundExceptions,所以我强制将这些 jar 文件添加到我的客户端类路径中:
1。 jms 2.jnp客户端 3. hornetq-jms-客户端 4.网络 5. hornetq-核心-cilent 6.jboss-通用
我使用的是 Hornetq 核心客户端 而不是 jms 客户端 吗? jms 客户端我真正需要什么 jar 文件?
我的 applicationContext.xml:
<!-- JndiTemplate -->
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
<prop key="java.naming.factory.url.pkgs">org.jboss.naming:org.jnp.interfaces</prop>
<prop key="java.naming.provider.url">jnp://localhost:1099</prop>
</props>
</property>
</bean>
<!-- Connection Factory -->
<bean id="hornetqConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplate"/>
<property name="jndiName" value="/ConnectionFactory" />
</bean>
<!-- Destionation -->
<bean id="annotationDeleteCommandDestination" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplate"/>
<property name="jndiName" value="/queue/command/annotation/deleteQueue" />
</bean>
<!-- Message Listener -->
<bean id="annotationMessageHandler" class="command.messaging.handler.annotation.AnnotationMessageHandler">
<property name="annotationService" ref="annotationService"/>
</bean>
<!-- Message Listener Container -->
<bean id="annotationDeleteCommandMsgListenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer"
p:connectionFactory-ref="hornetqConnectionFactory"
p:destination-ref="annotationDeleteCommandDestination"
p:cacheLevelName="CACHE_CONSUMER"
p:messageListener-ref="annotationDeleteCommandMessageHandler"
p:concurrentConsumers="10"
p:maxConcurrentConsumers="50"
p:receiveTimeout="5000"
p:idleTaskExecutionLimit="10
p:idleConsumerLimit="5" />
<!-- Message Producer -->
<bean id="messageSender" class="command.messaging.sender.MessageSender">
<property name="connectionFactory" ref="hornetqConnectionFactory" />
</bean>
最佳答案
HornetQ-JMS-Client 是 HornetQ-Core-Client 的适配器,它公开了 JMS API。 所以你需要他们两个。
HornetQ-Core-Client 内部需要 netty,所以你也需要那个。
不确定 jboss-common。您需要一些日志记录依赖项,但我不记得具体是哪一个。
请注意,与 SOAP 不同,JMS 是一种 API,而不是一种协议(protocol)。应用程序的其余部分独立于 API 提供者,但您需要正确的客户端库来理解您的 JMS 服务器使用的自定义协议(protocol)。例如,您不能使用 HornetQ JMS Client 连接到 ActiveMQ。
关于spring - JMS 客户端需要哪些 HornetQ 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13246422/