2012-11-06 45 views
2

我有一個獨立的hornetq服務器和一個JMS客戶端與它一起工作!關於hornetq用戶手冊,我應該只添加jnp-client.jarjms.jar到客戶端類路徑。但是,當我試圖使用HornetQ服務(生產和消費的消息),幾個ClassNotFoundExceptions拋出,所以我被迫添加這些JAR文件到我的客戶端類路徑:我需要JMS客戶端的哪個HornetQ庫?

1. JMS 2. JNP客戶端 3. hornetq- JMS客戶端 4.網狀 5. HornetQ的核 - cilent 6. JBoss的共用

正在使用HornetQ的核心客戶端代替JMS客戶端 I 12我真的需要什麼jar文件jms客戶端 ??

我的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> 

回答

0

HornetQ中的JMS客戶端是HornetQ的核心客戶端暴露出JMS API的適配器。 所以你需要他們兩個。

而HornetQ-Core-Client在內部需要netty,所以你也需要這個netty。

不確定關於jboss-common。你需要一些日誌依賴,但我不記得確切的是哪一個。

請注意,與SOAP不同,JMS是一個API,而不是一個協議。應用程序的其餘部分獨立於API提供程序,但您需要了解JMS服務器使用的自定義協議的正確客戶端庫。例如,您不能使用HornetQ JMS客戶端連接到ActiveMQ。

+1

除非要在客戶端ala jboss樣式上進行日誌記錄配置,否則您不需要客戶端上的jboss-loggins。 –

+0

他也在使用spring ..我不確定他需要什麼樣的依賴。 –

0

%的文檔...

如果您使用的只是一個純粹的Hornet的核心客戶(即無JMS),那麼你需要將hornetq核-client.jar中,將hornetq-commons.jar和netty.jar 。

如果您在客戶端使用JMS,那麼您還需要包含hornetq-jms-client.jar和jboss-jms-api.jar。

這些是指獨立hornetq下載的lib目錄中的文件。

我需要添加jnp-client.jar以避免CNF。