This forum is now a read-only archive. All commenting, posting, registration services have been turned off. Those needing community support and/or wanting to ask questions should refer to the Tag/Forum map, and to http://spring.io/questions for a curated list of stackoverflow tags that Pivotal engineers, and the community, monitor.
The Messages in Spring Integration can have any Object as the payload. There is a GenericMessage<T> class and a couple convenience types - such as StringMessage and ErrorMessage. For marshalling/unmarshalling XML, you could use the spring-oxm.jar that comes with Spring Web Services. It supports Castor as well as JAXB (1 and2), JibX, XmlBeans, and XStream. At this point, it would be easiest to add by implementing a MessageMapper, MessageHandler or ChannelInterceptor depending on where you need the transformation. However, we will soon be adding an XmlMarshallingTransformer that simply delegates to the spring-oxm Marshaller/Unmarshaller strategy interface. Feel free to submit that feature request via Jira: http://jira.springframework.org/browse/INT
When exceptions occur in a MessageHandler, the endpoint for that handler will delegate to its errorHandler, and the default implementation actually does send ErrorMessages to the MessageBus' errorChannel as described here: http://static.springframework.org/sp...ace-messagebus
The sample runs as a single process - just with thread pools for the dispatcher and the message handling. Spring Integration's default MessageChannel implementation runs in-process wrapping a LinkedBlockingQueue. To communicate across multiple processes requires the use of JMS adapters (or other remoting adapters that are being developed).