2010-12-29 15 views
3

私はHornetQとそれをSpringアプリケーションに埋め込む可能性を評価しようとしています。簡単な設定で始めるには、次のように初期化しようとしています。私は、あなたができるという事実を別にして、これを行う方法について多くの文書を見つけられませんでした。SpringにHornetQを埋め込む

私は春3とHornetQは2.1.1GA

を使用しています私のSpring構成は、それが良いだろうしかしtheresの簡素クリーナー構成ならば、次のようになります。私が最初に最小限のアプローチをしたいし、それを土台:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 


<bean name="mbeanServer" class="java.lang.management.ManagementFactory" factory-method="getPlatformMBeanServer" /> 

<bean name="fileConfiguration" class="org.hornetq.core.config.impl.FileConfiguration" init-method="start" destroy-method="stop" /> 

<bean name="hornetQSecurityManagerImpl" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl" /> 

<!-- The core server --> 
<bean name="hornetQServerImpl" class="org.hornetq.core.server.impl.HornetQServerImpl"> 
<constructor-arg ref="fileConfiguration" /> 
<constructor-arg ref="mbeanServer" /> 
<constructor-arg ref="hornetQSecurityManagerImpl" /> 
</bean> 

<!-- The JMS server --> 
<bean name="jmsServerManagerImpl" class="org.hornetq.jms.server.impl.JMSServerManagerImpl" init-method="start" destroy-method="stop" > 
<constructor-arg ref="hornetQServerImpl" /> 
</bean> 

    <bean name="connectionFactory" class="org.hornetq.jms.client.HornetQConnectionFactory" > 
<constructor-arg> 
    <bean class="org.hornetq.api.core.TransportConfiguration"> 
    <constructor-arg value="org.hornetq.integration.transports.netty.NettyConnectorFactory" /> 
    <constructor-arg> 
    <map key-type="java.lang.String" value-type="java.lang.Object"> 
    <entry key="port" value="5445"></entry> 
    </map> 
    </constructor-arg> 
    </bean> 
</constructor-arg> 
</bean> 

<bean name="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> 
<property name="connectionFactory" ref="connectionFactory"></property> 
</bean> 

</beans> 

この設定は、私はエラーを取得していますで:

SEVERE: Unable to deploy node [queue: null] DLQ 
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial 
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645) 
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288) 
... 
29-Dec-2010 18:16:34 org.hornetq.core.logging.impl.JULLogDelegate error 
SEVERE: Unable to deploy node [queue: null] ExpiryQueue 
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial 
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645) 
... 
9-Dec-2010 18:16:34 org.hornetq.core.logging.impl.JULLogDelegate error 
SEVERE: Unable to deploy node [queue: null] ExampleQueue 
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial 
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645) 
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288) 
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325) 

ITSはJNDIに関連する明白なものでなければならないが、私は感謝します最初からやり直すための適切な最小限の設定。

答えて

2

サーバーに追加するJMSキューを定義し、空のJNDIバインドのリストを指定する必要があります(このキューは、デフォルトのキュー、デフォルトのユーザーなど)。各キュー。これを行うには、JMSConfigurationImplをJMSServerManagerImpl Bean定義に追加します。たとえば、あなたが「testqueue」と呼ばれるキューを定義する必要がある場合:第二と第三のコンストラクタの引数は、キューとトピック構成のリストを取るので

<bean id="hornetQJmsConfig" class="org.hornetq.jms.server.config.impl.JMSConfigurationImpl"> 
    <constructor-arg index="0"> 
     <list/> 
    </constructor-arg> 
    <!-- Queue configurations --> 
    <constructor-arg index="1"> 
     <list> 
     <bean class="org.hornetq.jms.server.config.impl.JMSQueueConfigurationImpl"> 
      <!-- Name --> 
      <constructor-arg index="0" value="testqueue"/> 
      <!-- Selector --> 
      <constructor-arg index="1"><null/></constructor-arg> 
      <!-- Durable queue --> 
      <constructor-arg index="2" value="true"/> 
      <!-- JNDI bindings, empty list for none --> 
      <constructor-arg index="3"><list/></constructor-arg> 
     </bean> 
     </list> 
    </constructor-arg> 
    <!-- Topic configurations --> 
    <constructor-arg index="2"> 
     <list/> 
    </constructor-arg> 
    </bean> 

を、あなたが好きなように多くのキューとトピックを追加することができます。 2つ以上の場合は、Springテンプレートオブジェクトを作成するのが最善の方法です。

関連する問題