第 44 章 消息接口
摘要
本章介绍了如何实施 Apache Camel 组件的一个可选步骤。
44.1. Message Interface
概述
org.apache.camel.Message
类型的实例可以表示任何类型的消息(在 或 Out)。图 44.1 “消息继承层次结构” 显示消息类型的继承层次结构。您不需要始终为组件实施自定义消息类型。在很多情况下,默认实施 DefaultMessage
足以满足需要。
图 44.1. 消息继承层次结构
Message 接口
例 44.1 “消息接口” 显示 org.apache.camel.Message
接口的定义。
例 44.1. 消息接口
package org.apache.camel; import java.util.Map; import java.util.Set; import javax.activation.DataHandler; public interface Message { String getMessageId(); void setMessageId(String messageId); Exchange getExchange(); boolean isFault(); void setFault(boolean fault); Object getHeader(String name); Object getHeader(String name, Object defaultValue); <T> T getHeader(String name, Class<T> type); <T> T getHeader(String name, Object defaultValue, Class<T> type); Map<String, Object> getHeaders(); void setHeader(String name, Object value); void setHeaders(Map<String, Object> headers); Object removeHeader(String name); boolean removeHeaders(String pattern); boolean hasHeaders(); Object getBody(); Object getMandatoryBody() throws InvalidPayloadException; <T> T getBody(Class<T> type); <T> T getMandatoryBody(Class<T> type) throws InvalidPayloadException; void setBody(Object body); <T> void setBody(Object body, Class<T> type); DataHandler getAttachment(String id); Map<String, DataHandler> getAttachments(); Set<String> getAttachmentNames(); void removeAttachment(String id); void addAttachment(String id, DataHandler content); void setAttachments(Map<String, DataHandler> attachments); boolean hasAttachments(); Message copy(); void copyFrom(Message message); String createExchangeId(); }
消息方法
Message 接口定义了以下方法:
-
setMessageId ()
,getMessageId ()
TACAC- 之间Getter 和 setter 方法用于消息 ID。无论您是否使用自定义组件中的消息 ID 是实施详情。 -
getExchange ()
WWN-loadbalancingReturns 对父交换对象的引用。 -
isFault
()、setFault ()
PLAYBOOK-nlsGetter 和 setter 方法用于 fault 标志,这指明此消息是否为故障消息。 -
getHeader ()
,getHeaders ()
, setHeader
(),setHeaders ()
,removeHeader ()
,hasHeaders ()
可让您为消息标头设置器。通常情况下,这些消息标头可用于存储实际的标头数据,或者存储各种元数据。 -
getBody ()、
getMandatoryBody ()、
的 setBody ()controlPlane-strategyGetter 和 setter 方法用于消息正文。getMandatoryBody ()访问器保证返回的正文为非空,否则会抛出setBody ()
InvalidPayloadException
异常。 -
getAttachment ()
,getAttachments
(),getAttachmentNames (),
removeAttachment ()
,addAttachment ()
,setAttachments
(),hasAttachments ()
FISMA-EventingMethods to get、set、add 和 remove attachments。 -
copy ()
WWN-»Creates a new, same (包括消息 ID)副本当前自定义消息对象。 -
copyFrom ()
WWN-将指定通用消息对象(包括消息 ID)的完整内容(包括消息 ID)复制到当前消息实例中。由于此方法必须能够从任何消息类型复制,它会复制通用消息属性,但不能复制自定义属性。
-
如果消息实现能够提供 ID;否则,请返回
null
,则createExchangeId ()
则设为用此交换的唯一 ID。