camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: Attemp to send message to activemq temporary queue using producerTemplate: InvalidMetadataException
Date Wed, 10 Feb 2010 15:17:31 GMT
I guess the exception break out the producerTemplate sending process.

Willem


ariekenb wrote:
> I added a log statement to record the endpoint name I am trying to send to. 
> Now my code looks like this:
> 
> 
> final String endpointName = "activemq:temp:queue:"
>                                        + temporaryQueue.getQueueName();
> log.info("sending to endpointName = '" + endpointName + "'");
> producerTemplate.sendBody(endpointName, notification);
> 
> 
> I get this endpointName logged just before the camel exception:
> 
> 08:47:38,178 | INFO  | tenerContainer-1 | SDSSFlightPublisher              |
> face.service.SDSSFlightPublisher  154 | sending to endpointName =
> 'activemq:temp:queue:ID:mwgk-60813-1265813257931-0:0:1'
> 08:47:38,292 | WARN  | tenerContainer-1 | faultManagementLifecycleStrategy |
> faultManagementLifecycleStrategy  187 | Could not register Endpoint MBean
> for uri: activemq://temp:queue:ID:mwgk-60813-1265813257931-0:0:1
> org.springframework.jmx.export.metadata.InvalidMetadataException: No
> ManagedResource attribute found for class: class
> org.apache.camel.component.jms.JmsTemporaryQueueEndpoint
> 
> 
> 
> Are you saying this is incorrect?  I am confused. 
> "activemq:temp:queue:<temporary queue name>" is the syntax shown here:
> http://camel.apache.org/jms.html
> 
> What is the correct syntax to use to send to a temporary queue?  If what I
> am doing is incorrect, I think the documentation must be incorrect.
> 
> 
> Claus Ibsen-2 wrote:
>> Hi
>>
>> The WARN is ignored by Camel. However it should send the message. I
>> think you set the endpoint name wrong
>>
>>  final String endpointName = "activemq:temp:queue:"
>>                                        + temporaryQueue.getQueueName();
>>
>> You should probably not add the temp:queue stuff. Do a system out and
>> see what the queue name outputs so you are 100% sure you create a
>> correct endpoint name.
>>
>>
>>
>> On Wed, Feb 10, 2010 at 3:36 PM, ariekenb <aaron.j.riekenberg@lmco.com>
>> wrote:
>>> Claus -
>>>
>>> The exception is logged as WARN.  No exception is thrown out of the
>>> ProducerTemplate.sendBody call however.
>>>
>>> More importantly, no message is ever actually sent to the TemporaryQueue.
>>> The client listening to the TemporaryQueue does not receive any message,
>>> and
>>> JConsole shows the EnqueueCount for the TemporaryQueue remains at 0.
>>>
>>> Here is a more complete stack trace showing the error message and log
>>> level:
>>>
>>> 08:30:43,389 | WARN  | tenerContainer-1 |
>>> faultManagementLifecycleStrategy |
>>> faultManagementLifecycleStrategy  187 | Could not register Endpoint MBean
>>> for uri: activemq://temp:queue:ID:mwgk-45812-1265812243018-0:0:1
>>> org.springframework.jmx.export.metadata.InvalidMetadataException: No
>>> ManagedResource attribute found for class: class
>>> org.apache.camel.component.jms.JmsTemporaryQueueEndpoint
>>>        at
>>> org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler.populateMBeanDescriptor(MetadataMBeanInfoAssembler.java:279)
>>>        at
>>> org.springframework.jmx.export.assembler.AbstractMBeanInfoAssembler.getMBeanInfo(AbstractMBeanInfoAssembler.java:69)
>>>        at
>>> org.apache.camel.management.DefaultManagementAgent.register(DefaultManagementAgent.java:202)
>>>        at
>>> org.apache.camel.management.DefaultManagementAgent.register(DefaultManagementAgent.java:193)
>>>        at
>>> org.apache.camel.management.ManagedManagementStrategy.manageNamedObject(ManagedManagementStrategy.java:69)
>>>        at
>>> org.apache.camel.management.ManagedManagementStrategy.manageObject(ManagedManagementStrategy.java:62)
>>>        at
>>> org.apache.camel.management.DefaultManagementLifecycleStrategy.onEndpointAdd(DefaultManagementLifecycleStrategy.java:185)
>>>        at
>>> org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:432)
>>>        at
>>> org.apache.camel.impl.DefaultProducerTemplate.resolveMandatoryEndpoint(DefaultProducerTemplate.java:402)
>>>        at
>>> org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:116)
>>>
>>>
>>>
>>>
>>> Claus Ibsen-2 wrote:
>>>> Hi
>>>>
>>>> On Tue, Feb 9, 2010 at 7:46 PM, ariekenb <aaron.j.riekenberg@lmco.com>
>>>> wrote:
>>>>> I'm running apache-servicemix 4.1.0-psc-01-00RC1, using the included
>>>>> version
>>>>> of ActiveMQ and Camel.  I have some code that's receiving a message
>>>>> from
>>>>> an
>>>>> ActiveMQ queue, then sending a message to the temporary queue it got
>>>>> from
>>>>> JMSReplyTo.
>>>>>
>>>>>        @EndpointInject
>>>>>        private ProducerTemplate producerTemplate = null;
>>>>>
>>>>>
>>>>>        @Consume(uri = "subscriptionRequestEndpoint")
>>>>>        public synchronized void processSubscriptionRequest(
>>>>>                        @Header("JMSReplyTo") Destination jmsReplyTo,
>>>>>                        @Body SubscriptionManagerRegister
>>>>> registrationMessage) {
>>>>>                try {
>>>>>                        log.info("got registration request client name
=
>>>>> "
>>>>>                                        +
>>>>> registrationMessage.getClientName() + " jmsReplyTo = "
>>>>>                                        + jmsReplyTo);
>>>>>                        tempQueueList.add((TemporaryQueue) jmsReplyTo);
>>>>>                        publishMessageToSubscriber((TemporaryQueue)
>>>>> jmsReplyTo, "hello");
>>>>>                } catch (Exception e) {
>>>>>                        log.warn("processSubscriptionRequest", e);
>>>>>                }
>>>>>        }
>>>>>
>>>>>        public synchronized void publishMessageToSubscriber(
>>>>>                        TemporaryQueue temporaryQueue, Serializable
>>>>> message) {
>>>>>                try {
>>>>>                        final String endpointName =
>>>>> "activemq:temp:queue:"
>>>>>                                        + temporaryQueue.getQueueName();
>>>>>                        producerTemplate.sendBody(endpointName,
>>>>> message);
>>>>>                } catch (Exception e) {
>>>>>                        log.warn("publishMessageToSubscriber", e);
>>>>>                }
>>>>>        }
>>>>>
>>>>> When the producerTemplate.sendBody call runs, I get the following
>>>>> exception.
>>>>> Is this a camel bug or am I doing something wrong?
>>>>>
>>>>> org.springframework.jmx.export.metadata.InvalidMetadataException: No
>>>>> ManagedResource attribute found for class: class
>>>>> org.apache.camel.component.jms.JmsTemporaryQueueEndpoint
>>>>>        at
>>>>> org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler.populateMBeanDescriptor(MetadataMBeanInfoAssembler.java:279)
>>>>>        at
>>>>> org.springframework.jmx.export.assembler.AbstractMBeanInfoAssembler.getMBeanInfo(AbstractMBeanInfoAssembler.java:69)
>>>>>        at
>>>>> org.apache.camel.management.DefaultManagementAgent.register(DefaultManagementAgent.java:202)
>>>>>        at
>>>>> org.apache.camel.management.DefaultManagementAgent.register(DefaultManagementAgent.java:193)
>>>>>        at
>>>>> org.apache.camel.management.ManagedManagementStrategy.manageNamedObject(ManagedManagementStrategy.java:69)
>>>>>        at
>>>>> org.apache.camel.management.ManagedManagementStrategy.manageObject(ManagedManagementStrategy.java:62)
>>>>>        at
>>>>> org.apache.camel.management.DefaultManagementLifecycleStrategy.onEndpointAdd(DefaultManagementLifecycleStrategy.java:185)
>>>>>        at
>>>>> org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:432)
>>>>>        at
>>>>> org.apache.camel.impl.DefaultProducerTemplate.resolveMandatoryEndpoint(DefaultProducerTemplate.java:402)
>>>>>        at
>>>>> org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:116)
>>>>>
>>>>>
>>>> At what level do this stacktrace get logged? ERROR, DEBUG, INFO etc?
>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/Attemp-to-send-message-to-activemq-temporary-queue-using-producerTemplate%3A-InvalidMetadataException-tp27520096p27520096.html
>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>>
>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>> Open Source Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>>
>>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/Attemp-to-send-message-to-activemq-temporary-queue-using-producerTemplate%3A-InvalidMetadataException-tp27520096p27532128.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>> -- 
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
> 


Mime
View raw message