You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by James Strachan <ja...@gmail.com> on 2008/10/30 13:10:18 UTC
Re: Empty message body of type List in a Queue
BTW the Camel user lists is a better place for this
http://activemq.apache.org/camel/discussion-forums.html
(I've CC'd them)
2008/10/30 Schneider <sc...@transporeon.com>:
>
> Hi ActiveMQ forum,
>
> we are new to ActiveMQ and we have a problem (or a misunderstanding) with
> messages having an object in the body instead of text (String). It seems
> that the message body is not stored in the queue if it is of type List or
> Map instead of String.
>
> We are using: ActiveMQ 5.1, persistence queues on Windows XP Pro SP 2, JVM
> 1.6_10.
>
> Our routes are defined in a package given via activemq.xml:
>
> <!-- http://activemq.apache.org/enterprise-integration-patterns.html -->
> <camelContext id="camel"
> xmlns="http://activemq.apache.org/camel/schema/spring">
> <package>com......connector.sap</package>
> </camelContext>
>
> In this package we have to RouteBuilders which defines the two following
> routes:
>
> public void configure() throws Exception {
> FlatpackDataFormat df = new FlatpackDataFormat();
> df.setDefinition(new ClassPathResource("definition.pzmap.xml"));
> df.setFixed(false);
> df.setIgnoreFirstRecord(false);
> df.setDelimiter(';');
>
> from("file://C:/ftproot/in?delete=true")
> .unmarshal(df)
> .convertBodyTo(List.class)
> .to("activemq:import.text");
> }
>
> and
>
> public void configure() throws Exception {
> from("activemq:import.text")
> .process(new SimpleTextMessageProcessor());
> }
>
> The SimpleTextMessageProcessor.process is like this:
>
> public void process(Exchange exchange) throws Exception {
> Logger logger =
> Logger.getLogger("com.transporeon.norskeskog.connector.sap");
> logger.debug("ENTRY: SimpleTextMessageProcessor.process");
>
> Message in = exchange.getIn();
> logger.debug("IN message: " + in);
> logger.debug("IN body: " + in.getBody());
> }
>
> Here we are missing the body of the message which is null as the log of the
> ActiveMQ console shows:
>
> DEBUG sap - ENTRY:
> SimpleTextMessageProcessor.process
> DEBUG sap - IN message: JmsMessage:
> ActiveMQMessage {commandId = 5, responseRequired = true, messageId
> = ID:PC038-2832-1225357029453-2:1:1:1:1, originalDestination = null,
> originalTransactionId = null, producerId = ID:PC038-2832-1225
> 357029453-2:1:1:1, destination = queue://import.norskeskog.text,
> transactionId = null, expiration = 0, timestamp = 1225357033015,
> arrival = 0, brokerInTime = 1225357033015, brokerOutTime = 1225357033031,
> correlationId = null, replyTo = null, persistent = true,
> type = null, priority = 4, groupID = null, groupSequence = 0,
> targetConsumerId = null, compressed = false, userID = null, content
> = null, marshalledProperties =
> org.apache.activemq.util.ByteSequence@154c054, dataStructure = null,
> redeliveryCounter = 0, size =
> 0, properties = null, readOnlyProperties = true, readOnlyBody = true,
> droppable = false}
> DEBUG sap - IN body: null
>
> If we do not convert the Body to a List the body is not missing. But we
> would like to have objects in our messages.
>
> We know the class ObjectMessage which maybe the solution for our problem,
> but not sure how to use this class in our context.
>
> So, our quesition is how we can store objects in messages which are send to
> persistence message queues in ActiveMQ?
>
> Many thanks for your time!
> Schneider
> --
> View this message in context: http://www.nabble.com/Empty-message-body-of-type-List-in-a-Queue-tp20243979p20243979.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>
--
James
-------
http://macstrac.blogspot.com/
Open Source Integration
http://fusesource.com/