Hi, this is dirful.
I've study amq for several weeks. I have also searched the forum
carefully.I'm sorry to say that I'm so confused. I didn't get it.:(
This is my problem:
I make a project via Struts FrameWork,Spring and tomcat. I injected JNDI
into "context.xml" of tomcat like this:
<Resource name="jms/ConnectionFactory"
auth="Container"
type="org.apache.activemq.ActiveMQConnectionFactory"
description="JMS Connection Factory"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
brokerURL="vm://192.168.201.249"
brokerName="LocalActiveMQBroker"/>
<Resource name="jms/Queue1"
auth="Container"
type="org.apache.activemq.command.ActiveMQQueue"
description="my Queue1"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="FOO.BAR"/>
And I rewrited the xml of Spring,too. Then I made a MessageProducer and a
MessageConsumer.
If the MessageProducer and MessageConsumer is in the same apllication(just
call it projectA),It works! Just sending a message, it can real time
receiving the message.In addtion,the receiving method is written in Action.
But now, I wanted if A application sent a message, B application recived it,
and B sent , A recieved. I modified the "context.xml" like this
<Resource name="jms/ConnectionFactory"
auth="Container"
type="org.apache.activemq.ActiveMQConnectionFactory"
description="JMS Connection Factory"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
brokerURL="vm://192.168.201.249"
brokerName="LocalActiveMQBroker"/>
<Resource name="jms/Queue1"
auth="Container"
type="org.apache.activemq.command.ActiveMQQueue"
description="my Queue1"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="FOO.BAR"/>
<Resource name="jms/Queue2"
auth="Container"
type="org.apache.activemq.command.ActiveMQQueue"
description="my Queue2"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="FOO1.BAR"/>
And this is one of my applictiaonContext.xml,the other one is similar:
<bean id="jmsConnectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"
value="java:comp/env/jms/ConnectionFactory"></property>
</bean>
<bean id="jmsQueue1"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"
value="java:comp/env/jms/Queue1"></property>
</bean>
<bean id="jmsQueue2"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"
value="java:comp/env/jms/Queue2"></property>
</bean>
<bean id="jmsTemplate"
class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory"
ref="jmsConnectionFactory"></property>
<property name="defaultDestination" ref="jmsQueue2"></property>
</bean>
<bean id="sender" class="message.Sender">
<property name="jmsTemplate" ref="jmsTemplate"></property>
</bean>
<bean id="receive" class="message.Receiver"></bean>
<bean id="listenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory"
ref="jmsConnectionFactory"></property>
<property name="destination" ref="jmsQueue1"></property>
<property name="messageListener" ref="receive"></property>
</bean>
I'm depressed. It didn't work very well. When A send a message, B's listener
didn't work.Sometimes, when B send a message, at the same time, it can
recieve the message. But this isn't what I hope.
Could you give me some directions,sir? How can I do monitor the sending
message in two applications?
I have annother question,too.
Er, you see that I injected JNDI into "context.xml", it can send a message
successfully. and I want to make a static Main method In another application
to receive the message( just test). I'm confused that, If I don't use
JNDI,the url is...,the broker is...,password?username? how can I write it?
I made it like this:
connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
"vm://192.168.201.249");
connection = connectionFactory.createConnection();
connection.start();
session =
connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
destination = session.createQueue("FOO.BAR");
consumer = session.createConsumer(destination);
I got a waring:Waiting to Lock the Store activemq-data\192.168.201.249.
I appreciate any your help. Best whishes!
dirful
08/10/2009
--
View this message in context:
http://www.nabble.com/How-can-consumer-monitor-the-producer-via-Spring-tp24895824p24895824.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.