Hi
I think this is bug of camel-jms, I just fill a JIRA[1] for it.
[1]https://issues.apache.org/activemq/browse/CAMEL-2456
Willem
ariekenb 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)