Do you have broker running at tcp://localhost:61616? I don't see an
entry for it in your spring config.
If not, consider adding something like this:
      <amq:broker id="brokerLocal" brokerName="localBroker">
         <amq:persistenceAdapter>
            <amq:amqPersistenceAdapter directory="file:./data/amq-local"/>
         </amq:persistenceAdapter>
          <amq:transportConnectors>
          <amq:transportConnector uri="tcp://localhost:61616" />
          </amq:transportConnectors>
         <amq:networkConnectors>
         </amq:networkConnectors>
        </amq:broker>

Regards,

2009/9/21 czy11421 <czy11...@gmail.com>:
> Hi, All,
>
> I have tried to write a JMS with Spring, but failed. no compiler error, no
> runtime error, just wait infinitely, can't receive message, but I am sure
> the ActiveMQ is publishing data in 'STOCKS.SUNW' topic.
>
> Anybody has some clues ? Thanks.
>
> ///////////////////////// MessageReceiver.java /////////////////////////
> import javax.jms.JMSException;
> import javax.jms.Message;
> import javax.jms.TextMessage;
>
> import org.springframework.jms.core.JmsTemplate;
>
> public class MessageReceiver {
>   private JmsTemplate jmsTemplate;
>   public MessageReceiver() {
>   }
>
>   public void setJmsTemplate(JmsTemplate jmsTemplate) {
>       this.jmsTemplate = jmsTemplate;
>   }       public void receiveMessage() {
> System.out.println("receiving");
>             Message message = jmsTemplate.receive(); // wait infinitely
>       System.out.println("Message="+message); // never reach here
>       TextMessage textMessage = null;
>       if (message instanceof TextMessage) {
>           textMessage = (TextMessage) message;
>           //....
>       }
>   }
> }
>
> /////////////////////////////////
>
> //////////////////////// spring beans xml /////////////////////
> <?xml version="1.0"?>
>
> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
> "http://www.springframework.org/dtd/spring-beans.dtd";>
>
> <beans>
>   <bean id="activeMQConnectionFactory"
> class="org.apache.activemq.ActiveMQConnectionFactory">
>       <property name="brokerURL" value="tcp://localhost:61616" />
>   </bean>
>
>   <bean id="sampleJmsTemplate"
> class="org.springframework.jms.core.JmsTemplate">
>       <property name="connectionFactory" ref="activeMQConnectionFactory" />
>       <property name="defaultDestination">
>           <ref bean="defaultDestination" />
>       </property>
>             <property name="receiveTimeout">
>     <value>3000000</value>
>   </property>
>         </bean>
>
>   <bean id="messageReceiver" class="com.MessageReceiver">
>       <property name="jmsTemplate" ref="sampleJmsTemplate" />
>   </bean>
>     <bean id="defaultDestination"
> class="org.apache.activemq.command.ActiveMQQueue">
>       <constructor-arg value="STOCKS.SUNW" />
>   </bean>
> </beans>
>
> /////////////////////////// main class /////////////////////////
>
> import org.springframework.context.ApplicationContext;
> import org.springframework.context.support.ClassPathXmlApplicationContext;
>
> public class Test {
>
>   public static void main(String[] args) throws Exception {
>       ApplicationContext ctx = new
> ClassPathXmlApplicationContext("appContext.xml");
>
>       MessageReceiver receiver = (MessageReceiver)
> ctx.getBean("messageReceiver");
>
>       receiver.receiveMessage();
>
>   }
>
> }
>



-- 
Rafał Rusin
http://www.touk.pl
http://top.touk.pl
http://www.mimuw.edu.pl/~rrusin

Reply via email to