2011-01-13 3 views
2

私はActiveMQ MessageListenerを作成し、それをSpringを使って設定しました。私はTomcatでリスナーを主催しています。リスナーだけが機能するWebアプリケーションを起動すると、リスナーは自動的に起動する必要がありますか?または、追加の設定が必要ですか?TomcatでActiveMQメッセージリスナーを起動しますか?

ここに私のものがあります。まず、春は起動時に自身を設定できるようにするのweb.xmlを更新し、

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/classes/spring/applicationContext.xml</param-value> 
    </context-param> 

</web-app> 

は、その後、私は

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

    <context:annotation-config /> 
    <context:component-scan base-package="com.somepackage"/> 

    <context:property-placeholder location="classpath:env.properties"/> 

    <bean id="jmsFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> 
     <property name="brokerURL" value="tcp://localhost:61616" /> 
    </bean> 

    <bean id="documentListener" class="com.somepackage.SomeListener" /> 

    <bean id="container" 
     class="org.springframework.jms.listener.DefaultMessageListenerContainer"> 
     <property name="connectionFactory" ref="cachingConnectionFactory"/> 
     <property name="messageListener" ref="documentListener"/> 
     <property name="destinationName" value="STOCKS.MSFT" /> 
    </bean> 

    <bean id="cachingConnectionFactory" 
     class="org.springframework.jms.connection.CachingConnectionFactory"> 
     <property name="targetConnectionFactory" ref="jmsFactory" /> 
     <property name="sessionCacheSize" value="1" /> 
    </bean> 
</beans> 

、ActiveMQのリスナーを設定するには、applicationContext.xmlをを作成して、それはそれです。私がウェブ上で見たものに基づいて、私はそれが必要なのかどうかはわかりません。おそらく、リスナーを蹴散らすためにTomcatに他の設定が必要なのでしょうか?

答えて

1

これは実際には機能していました。私はEclipseを使用してこれをデバッグしていましたが、突然動作する前に、いくつかのリフレッシュ、クレンジング、再起動が必要でした。

私自身の質問に答えるには、はい、これはTomcat内のWebアプリケーションでリスナーを実行するために必要なすべてです。 XMLで完全に構成できます。

関連する問題