Package org.apache.servicemix.soap.bindings.soap

Examples of org.apache.servicemix.soap.bindings.soap.SoapVersion


        if (xmlReader == null) {
            throw new NullPointerException("No xml reader found");
        }
        try {
            QName name = xmlReader.getName();
            SoapVersion soapVersion = this.soapVersion;
            if (soapVersion == null) {
                soapVersion = message.get(SoapVersion.class);
            }
            if (soapVersion == null) {
                soapVersion = SoapVersionFactory.getInstance().getSoapVersion(name);
            } else {
                soapVersion = soapVersion.getDerivedVersion(name.getPrefix());
            }
            if (soapVersion == null) {
                throw new SoapFault(SoapConstants.SOAP_12_CODE_VERSIONMISMATCH, "Unrecognized namespace: "
                                + xmlReader.getNamespaceURI() + " at ["
                                + xmlReader.getLocation().getLineNumber() + ","
                                + xmlReader.getLocation().getColumnNumber()
                                + "]. Expecting a Soap 1.1 or 1.2 namespace.");
            }
            message.put(SoapVersion.class, soapVersion);
            if (!name.equals(soapVersion.getEnvelope())) {
                if (name.getLocalPart().equals(soapVersion.getEnvelope().getLocalPart())) {
                    throw new SoapFault(SoapConstants.SOAP_12_CODE_VERSIONMISMATCH,
                          "Expected a SOAP " + soapVersion.getVersion() + " request");
                }
                throw new SoapFault(SoapConstants.SOAP_12_CODE_VERSIONMISMATCH, "Unrecognized element: "
                                + xmlReader.getName() + " at ["
                                + xmlReader.getLocation().getLineNumber() + ","
                                + xmlReader.getLocation().getColumnNumber()
                                + "]. Expecting 'Envelope'.");
            }
            xmlReader.nextTag();
            if (xmlReader.getName().equals(soapVersion.getHeader())) {
                Map<QName, DocumentFragment> headers = message.getSoapHeaders();
                while (xmlReader.nextTag() != XMLStreamConstants.END_ELEMENT) {
                    QName hn = xmlReader.getName();
                    Element e = StaxUtil.createElement(xmlReader);
                    DocumentFragment df = headers.get(hn);
                    if (df == null) {
                        df = e.getOwnerDocument().createDocumentFragment();
                    }
                    e = (Element) df.getOwnerDocument().importNode(e, true);
                    df.appendChild(e);
                    headers.put(hn, df);
                }
                xmlReader.nextTag();
            }
            if (!xmlReader.getName().equals(soapVersion.getBody())) {
                throw new SoapFault(SoapFault.SENDER, "Unrecognized element: "
                                + xmlReader.getName() + ". Expecting 'Body'.");
            }
            if (xmlReader.nextTag() == XMLStreamConstants.END_ELEMENT) {
                // Empty body
View Full Code Here


    }

    private void buildMustUnderstandHeaders(Set<QName> mustUnderstandHeaders,
                                            Message message,
                                            Set<URI> serviceRoles) {
        SoapVersion soapVersion = message.get(SoapVersion.class);
        for(DocumentFragment df : message.getSoapHeaders().values()) {
            for (int i = 0; i < df.getChildNodes().getLength(); i++) {
                if (df.getChildNodes().item(i) instanceof Element) {
                    Element header = (Element) df.getChildNodes().item(i);
                    String mustUnderstand = header.getAttributeNS(soapVersion.getNamespace(),
                                                                  soapVersion.getAttrNameMustUnderstand());
                    if (Boolean.valueOf(mustUnderstand) || "1".equals(mustUnderstand.trim())) {
                        String role = header.getAttributeNS(soapVersion.getNamespace(),
                                                            soapVersion.getAttrNameRole());
                        QName headerName = new QName(header.getNamespaceURI(), header.getLocalName());
                        role = role.trim();
                        if (role != null && role.length() > 0) {
                            role = role.trim();
                            if (role.equals(soapVersion.getNextRole()) || role.equals(soapVersion.getUltimateReceiverRole())) {
                                mustUnderstandHeaders.add(headerName);
                            } else {
                                for (URI roleFromBinding : serviceRoles) {
                                    if (role.equals(roleFromBinding)) {
                                        mustUnderstandHeaders.add(headerName);
View Full Code Here

import org.apache.servicemix.soap.bindings.soap.SoapVersionFactory;

public class SoapVersionFactoryTest extends TestCase {
   
    public void testSoap11() {
        SoapVersion sv = SoapVersionFactory.getInstance().getSoapVersion(Soap11.SOAP_NAMESPACE);
        assertNotNull(sv);
        assertEquals(Soap11.SOAP_NAMESPACE, sv.getNamespace());
        assertEquals(Soap11.SOAP_DEFAULT_PREFIX, sv.getPrefix());
    }
View Full Code Here

        assertEquals(Soap11.SOAP_NAMESPACE, sv.getNamespace());
        assertEquals(Soap11.SOAP_DEFAULT_PREFIX, sv.getPrefix());
    }

    public void testSoap12() {
        SoapVersion sv = SoapVersionFactory.getInstance().getSoapVersion(Soap12.SOAP_NAMESPACE);
        assertNotNull(sv);
        assertEquals(Soap12.SOAP_NAMESPACE, sv.getNamespace());
        assertEquals(Soap12.SOAP_DEFAULT_PREFIX, sv.getPrefix());
    }
View Full Code Here

        assertEquals(Soap12.SOAP_NAMESPACE, sv.getNamespace());
        assertEquals(Soap12.SOAP_DEFAULT_PREFIX, sv.getPrefix());
    }
   
    public void testUnkown() {
        SoapVersion sv = SoapVersionFactory.getInstance().getSoapVersion("urn:soap");
        assertNull(sv);
    }
View Full Code Here

        SoapVersion sv = SoapVersionFactory.getInstance().getSoapVersion("urn:soap");
        assertNull(sv);
    }
   
    public void testDerivedSoap11() {
        SoapVersion sv = Soap11.getInstance().getDerivedVersion("S");
        assertNotNull(sv);
        assertEquals(Soap11.SOAP_NAMESPACE, sv.getNamespace());
        assertEquals("S", sv.getPrefix());
    }
View Full Code Here

        assertEquals(Soap11.SOAP_NAMESPACE, sv.getNamespace());
        assertEquals("S", sv.getPrefix());
    }

    public void testDerivedSoap12() {
        SoapVersion sv = Soap12.getInstance().getDerivedVersion("S");
        assertNotNull(sv);
        assertEquals(Soap12.SOAP_NAMESPACE, sv.getNamespace());
        assertEquals("S", sv.getPrefix());
    }
View Full Code Here

        assertEquals(Soap12.SOAP_NAMESPACE, sv.getNamespace());
        assertEquals("S", sv.getPrefix());
    }
   
    public void testDerivedSoap11FromFactory() {
        SoapVersion sv = SoapVersionFactory.getInstance().getSoapVersion(
                        new QName(Soap11.SOAP_NAMESPACE, "Envelope", "S"));
        assertNotNull(sv);
        assertEquals(Soap11.SOAP_NAMESPACE, sv.getNamespace());
        assertEquals("S", sv.getPrefix());
    }
View Full Code Here

        assertEquals(Soap11.SOAP_NAMESPACE, sv.getNamespace());
        assertEquals("S", sv.getPrefix());
    }

    public void testDerivedSoap12FromFactory() {
        SoapVersion sv = SoapVersionFactory.getInstance().getSoapVersion(
                        new QName(Soap12.SOAP_NAMESPACE, "Envelope", "S"));
        assertNotNull(sv);
        assertEquals(Soap12.SOAP_NAMESPACE, sv.getNamespace());
        assertEquals("S", sv.getPrefix());
    }
View Full Code Here

public class SoapFaultOutInterceptor extends AbstractInterceptor {

    public void handleMessage(Message message) {
        Exception exception = message.getContent(Exception.class);
        XMLStreamWriter writer = message.getContent(XMLStreamWriter.class);
        SoapVersion soapVersion = message.get(SoapVersion.class);
        try {
            if (exception instanceof SoapFault) {
                SoapFault fault = (SoapFault) exception;
                if (soapVersion == null) {
                    soapVersion = Soap11.getInstance();
                }
                if (soapVersion.getVersion() == 1.1) {
                    writeSoap11Fault(writer, fault, soapVersion);
                } else if (soapVersion.getVersion() == 1.2) {
                    writeSoap12Fault(writer, fault, soapVersion);
                } else {
                    throw new IllegalStateException("Unrecognized soap version: " + soapVersion.getVersion());
                }
            }
        } catch (XMLStreamException e) {
            throw new Fault(e);
        }
View Full Code Here

TOP

Related Classes of org.apache.servicemix.soap.bindings.soap.SoapVersion

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.