muleheadersoutinterceptor.java
来自「提供ESB 应用mule源代码 提供ESB 应用mule源代码」· Java 代码 · 共 105 行
JAVA
105 行
/* * $Id: MuleHeadersOutInterceptor.java 11454 2008-03-20 14:29:51Z tcarlson $ * -------------------------------------------------------------------------------------- * Copyright (c) MuleSource, Inc. All rights reserved. http://www.mulesource.com * * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */package org.mule.transport.cxf.support;import static org.mule.api.config.MuleProperties.MULE_CORRELATION_GROUP_SIZE_PROPERTY;import static org.mule.api.config.MuleProperties.MULE_CORRELATION_ID_PROPERTY;import static org.mule.api.config.MuleProperties.MULE_CORRELATION_SEQUENCE_PROPERTY;import static org.mule.api.config.MuleProperties.MULE_EVENT_PROPERTY;import static org.mule.api.config.MuleProperties.MULE_REPLY_TO_PROPERTY;import static org.mule.transport.soap.MuleSoapHeaders.MULE_HEADER;import org.mule.api.MuleEvent;import org.mule.transport.soap.MuleSoapHeaders;import javax.xml.namespace.QName;import org.apache.cxf.binding.soap.SoapHeader;import org.apache.cxf.binding.soap.SoapMessage;import org.apache.cxf.helpers.DOMUtils;import org.apache.cxf.interceptor.Fault;import org.apache.cxf.message.Message;import org.apache.cxf.phase.Phase;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Text;/** * Writes the Mule Soap Header to the outgoing request. */public class MuleHeadersOutInterceptor extends BaseMuleHeaderInterceptor{ public MuleHeadersOutInterceptor() { super(Phase.PRE_PROTOCOL); } public void handleMessage(Message m) throws Fault { if (!(m instanceof SoapMessage)) { return; } SoapMessage message = (SoapMessage) m; MuleEvent event = (MuleEvent) message.getExchange().get(MULE_EVENT_PROPERTY); if (event == null) { return; } MuleSoapHeaders muleHeaders = new MuleSoapHeaders(event); if (muleHeaders.getCorrelationId() == null && muleHeaders.getReplyTo() == null) { return; } Document owner_doc = DOMUtils.createDocument(); Element mule_header = owner_doc.createElementNS(MULE_NS_URI, QUALIFIED_MULE_HEADER); // setup mule: namespace prefix declaration so that we can use it. mule_header.setAttribute("xmlns:mule", MULE_NS_URI); if (muleHeaders.getCorrelationId() != null) { mule_header.appendChild(buildMuleHeader(owner_doc, MULE_CORRELATION_ID_PROPERTY, muleHeaders.getCorrelationId())); mule_header.appendChild(buildMuleHeader(owner_doc, MULE_CORRELATION_GROUP_SIZE_PROPERTY, muleHeaders.getCorrelationGroup())); mule_header.appendChild(buildMuleHeader(owner_doc, MULE_CORRELATION_SEQUENCE_PROPERTY, muleHeaders.getCorrelationSequence())); } if (muleHeaders.getReplyTo() != null) { mule_header.appendChild(buildMuleHeader(owner_doc, MULE_REPLY_TO_PROPERTY, muleHeaders.getReplyTo())); } SoapHeader sh = new SoapHeader(new QName(MULE_NS_URI, MULE_HEADER), mule_header); message.getHeaders().add(sh); } Element buildMuleHeader(Document owner_doc, String localName, String value) { Element out = owner_doc.createElementNS(MULE_NS_URI, "mule:" + localName); if (value != null) { Text text = owner_doc.createTextNode(value); out.appendChild(text); } return out; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?