Search in sources :

Example 71 with SOAPEnvelope

use of org.apache.axiom.soap.SOAPEnvelope in project webservices-axiom by apache.

the class ConvertLLOMToDOOMTest method testConvert.

public void testConvert() throws Exception {
    String origXML = "<?xml version='1.0' encoding='UTF-8'?>\n" + "   <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:wsa=\"http://www.w3.org/2005/08/addressing\">\n" + "      <soapenv:Header>\n" + "         <wsse:Security xmlns:wsse=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\" soapenv:mustUnderstand=\"1\">\n" + "            <ds:Signature xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" Id=\"Signature-6426875\">\n" + "               <ds:SignedInfo>\n" + "                  <ds:CanonicalizationMethod Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\" />\n" + "                  <ds:SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\" />\n" + "                  <ds:Reference URI=\"#id-3083604\">\n" + "                     <ds:Transforms>\n" + "                        <ds:Transform Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\" />\n" + "                     </ds:Transforms>\n" + "                     <ds:DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\" />\n" + "                     <ds:DigestValue>lDeZJk0/r6u4tOOhOKbN0IEvwi0=</ds:DigestValue>\n" + "                  </ds:Reference>\n" + "               </ds:SignedInfo>\n" + "               <ds:SignatureValue>KhUeWMoUxUFe5jeTlqLdIEIG2Z7Q2q2mh9HT3IAYwbCev+FzXcuLSiPSsb7/+PSDM2SD0gl9tMp+dHjfPxmq7WiduH9mbnP6gkrxxu0T5rR916WsboshJGJKiPlj71bwpMsrrZohx4evHPdQ2SZHthlNb6jZyjq+LS7qFydppHk=</ds:SignatureValue>\n" + "               <ds:KeyInfo Id=\"KeyId-2529687\">\n" + "                  <wsse:SecurityTokenReference xmlns:wsu=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd\" wsu:Id=\"STRId-31966667\">\n" + "                     <ds:X509Data>\n" + "                        <ds:X509IssuerSerial>\n" + "                           <ds:X509IssuerName>CN=OASIS Interop Test CA,O=OASIS</ds:X509IssuerName>\n" + "                           <ds:X509SerialNumber>68652640310044618358965661752471103641</ds:X509SerialNumber>\n" + "                        </ds:X509IssuerSerial>\n" + "                     </ds:X509Data>\n" + "                  </wsse:SecurityTokenReference>\n" + "               </ds:KeyInfo>\n" + "            </ds:Signature>\n" + "            <wsu:Timestamp xmlns:wsu=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd\" wsu:Id=\"Timestamp-13986615\">\n" + "               <wsu:Created>2006-03-31T15:34:38.699Z</wsu:Created>\n" + "               <wsu:Expires>2006-03-31T15:39:38.699Z</wsu:Expires>\n" + "            </wsu:Timestamp>\n" + "         </wsse:Security>\n" + "         <wsa:To xmlns:wsa=\"http://www.w3.org/2005/08/addressing\">http://localhost:9080/axis2/services/Service</wsa:To>\n" + "         <wsa:ReplyTo xmlns:wsa=\"http://www.w3.org/2005/08/addressing\">\n" + "            <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>\n" + "         </wsa:ReplyTo>\n" + "         <wsa:MessageID xmlns:wsa=\"http://www.w3.org/2005/08/addressing\">urn:uuid:049875A6E153FCAAF011438192785862</wsa:MessageID>\n" + "         <wsa:Action xmlns:wsa=\"http://www.w3.org/2005/08/addressing\">http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT</wsa:Action>\n" + "      </soapenv:Header>\n" + "      <soapenv:Body xmlns:wsu=\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd\" wsu:Id=\"id-3083604\">\n" + "         <RequestSecurityToken xmlns=\"http://schemas.xmlsoap.org/ws/2005/02/trust\" Context=\"http://get.optional.attrs.working\">\n" + "            <TokenType>http://schemas.xmlsoap.org/ws/2005/02/sc/sct</TokenType>\n" + "            <RequestType>http://schemas.xmlsoap.org/ws/2005/02/trust/Issue</RequestType>\n" + "         </RequestSecurityToken>\n" + "      </soapenv:Body>\n" + "   </soapenv:Envelope>";
    SOAPModelBuilder builder = OMXMLBuilderFactory.createSOAPModelBuilder(new ByteArrayInputStream(origXML.getBytes()), null);
    SOAPEnvelope env = builder.getSOAPEnvelope();
    env.build();
    SOAPModelBuilder doomBuilder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM), env.getXMLStreamReader());
    SOAPEnvelope doomEnv = doomBuilder.getSOAPEnvelope();
    doomEnv.build();
    OMElement payload = doomEnv.getBody().getFirstElement();
    OMXMLParserWrapper llomBuilder = OMXMLBuilderFactory.createStAXOMBuilder(payload.getXMLStreamReaderWithoutCaching());
    OMElement llomPayload = llomBuilder.getDocumentElement();
    llomPayload.build();
    String xml = llomPayload.toString();
    assertTrue("Conversion failed", xml.indexOf("</RequestSecurityToken>") != -1);
}
Also used : ByteArrayInputStream(java.io.ByteArrayInputStream) OMElement(org.apache.axiom.om.OMElement) SOAPModelBuilder(org.apache.axiom.soap.SOAPModelBuilder) SOAPEnvelope(org.apache.axiom.soap.SOAPEnvelope) OMXMLParserWrapper(org.apache.axiom.om.OMXMLParserWrapper)

Example 72 with SOAPEnvelope

use of org.apache.axiom.soap.SOAPEnvelope in project webservices-axiom by apache.

the class ConvertLLOMToDOOMTest method testAddChild.

public void testAddChild() {
    SOAPFactory fac = OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM).getSOAP11Factory();
    SOAPEnvelope env = fac.getDefaultEnvelope();
    fac.createOMElement(new QName("http://test.org", "Test"), env.getBody());
    env.build();
    SOAPFactory llomFac = OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM).getSOAP11Factory();
    OMElement elem = llomFac.createOMElement("newDomElement", null);
    OMElement firstElement = env.getBody().getFirstElement();
    firstElement.addChild(elem);
    assertTrue("New DOM child missing", env.toString().indexOf("newDomElement") > 0);
}
Also used : QName(javax.xml.namespace.QName) OMElement(org.apache.axiom.om.OMElement) SOAPEnvelope(org.apache.axiom.soap.SOAPEnvelope) SOAPFactory(org.apache.axiom.soap.SOAPFactory)

Example 73 with SOAPEnvelope

use of org.apache.axiom.soap.SOAPEnvelope in project webservices-axiom by apache.

the class ValidateSample method validateUsingDOM.

// START SNIPPET: dom
public void validateUsingDOM(InputStream in, URL schemaUrl) throws Exception {
    OMMetaFactory mf = OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM);
    SOAPModelBuilder builder = OMXMLBuilderFactory.createSOAPModelBuilder(mf, in, "UTF-8");
    SOAPEnvelope envelope = builder.getSOAPEnvelope();
    OMElement bodyContent = envelope.getBody().getFirstElement();
    SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
    Schema schema = schemaFactory.newSchema(schemaUrl);
    Validator validator = schema.newValidator();
    validator.validate(new DOMSource((Element) bodyContent));
}
Also used : SchemaFactory(javax.xml.validation.SchemaFactory) DOMSource(javax.xml.transform.dom.DOMSource) Schema(javax.xml.validation.Schema) OMElement(org.apache.axiom.om.OMElement) Element(org.w3c.dom.Element) OMElement(org.apache.axiom.om.OMElement) SOAPModelBuilder(org.apache.axiom.soap.SOAPModelBuilder) SOAPEnvelope(org.apache.axiom.soap.SOAPEnvelope) OMMetaFactory(org.apache.axiom.om.OMMetaFactory) Validator(javax.xml.validation.Validator)

Example 74 with SOAPEnvelope

use of org.apache.axiom.soap.SOAPEnvelope in project webservices-axiom by apache.

the class MTOMLogSample method test.

// END SNIPPET: variant2
public void test() throws XMLStreamException {
    SOAPFactory factory = OMAbstractFactory.getSOAP11Factory();
    SOAPEnvelope env = factory.createDefaultSOAPMessage().getSOAPEnvelope();
    OMElement element = factory.createOMElement(new QName("urn:testService", "invokeMtom", "ns"), env.getBody());
    element.addChild(factory.createOMText(new DataHandler("test", "text/xml"), true));
    logMessage(env);
}
Also used : QName(javax.xml.namespace.QName) OMElement(org.apache.axiom.om.OMElement) SOAPEnvelope(org.apache.axiom.soap.SOAPEnvelope) DataHandler(javax.activation.DataHandler) SOAPFactory(org.apache.axiom.soap.SOAPFactory)

Example 75 with SOAPEnvelope

use of org.apache.axiom.soap.SOAPEnvelope in project webservices-axiom by apache.

the class TestBuilder method runTest.

@Override
protected void runTest() throws Throwable {
    String soap11Message = "<?xml version='1.0' ?>" + "<env:Envelope xmlns:env=\"http://schemas.xmlsoap.org/soap/envelope/\">\n" + "   <env:Header>\n" + "       <test:echoOk xmlns:test=\"http://example.org/ts-tests\"\n" + "                    env:actor=\"http://schemas.xmlsoap.org/soap/actor/next\"\n" + "                    env:mustUnderstand=\"1\"" + "       >\n" + "                       foo\n" + "       </test:echoOk>\n" + "   </env:Header>\n" + "   <env:Body>\n" + "       <env:Fault>\n" + "           <faultcode>\n" + "               env:Sender\n" + "           </faultcode>\n" + "           <faultstring>\n" + "               Sender Timeout\n" + "           </faultstring>\n" + "           <faultactor>\n" + "               http://schemas.xmlsoap.org/soap/envelope/actor/ultimateReceiver\n" + "           </faultactor>\n" + "           <detail xmlns:m=\"http:www.sample.org\">\n" + "               Details of error\n" + "               <m:MaxTime m:detail=\"This is only a test\">\n" + "                   P5M\n" + "               </m:MaxTime>\n" + "               <m:AveTime>\n" + "                   <m:Time>\n" + "                       P3M\n" + "                   </m:Time>\n" + "               </m:AveTime>\n" + "           </detail>\n" + "           <n:Test xmlns:n=\"http:www.Test.org\">\n" + "               <n:TestElement>\n" + "                   This is only a test\n" + "               </n:TestElement>\n" + "           </n:Test>\n" + "       </env:Fault>\n" + "   </env:Body>\n" + "</env:Envelope>";
    OMXMLParserWrapper soap11Builder = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, new StringReader(soap11Message));
    SOAPEnvelope soap11Envelope = (SOAPEnvelope) soap11Builder.getDocumentElement();
    //            soap11Envelope.build();
    //            writer = XMLOutputFactory.newInstance().createXMLStreamWriter(System.out);
    //            soap11Envelope.internalSerializeAndConsume(writer);
    //          writer.flush();
    assertTrue("SOAP 1.1 :- envelope local name mismatch", soap11Envelope.getLocalName().equals(SOAPConstants.SOAPENVELOPE_LOCAL_NAME));
    assertTrue("SOAP 1.1 :- envelope namespace uri mismatch", soap11Envelope.getNamespace().getNamespaceURI().equals(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
    SOAPHeader header = soap11Envelope.getHeader();
    assertTrue("SOAP 1.1 :- Header local name mismatch", header.getLocalName().equals(SOAPConstants.HEADER_LOCAL_NAME));
    assertTrue("SOAP 1.1 :- Header namespace uri mismatch", header.getNamespace().getNamespaceURI().equals(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
    SOAPHeaderBlock headerBlock = (SOAPHeaderBlock) header.getFirstElement();
    assertTrue("SOAP 1.1 :- Header block name mismatch", headerBlock.getLocalName().equals("echoOk"));
    assertTrue("SOAP 1.1 :- Header block name space uri mismatch", headerBlock.getNamespace().getNamespaceURI().equals("http://example.org/ts-tests"));
    assertTrue("SOAP 1.1 :- Headaer block text mismatch", headerBlock.getText().trim().equals("foo"));
    // Attribute iteration is not in any guaranteed order.
    // Use QNames to get the OMAttributes.
    QName actorQName = new QName(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI, SOAP11Constants.ATTR_ACTOR);
    QName mustUnderstandQName = new QName(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI, SOAP11Constants.ATTR_MUSTUNDERSTAND);
    OMAttribute actorAttribute = headerBlock.getAttribute(actorQName);
    OMAttribute mustUnderstandAttribute = headerBlock.getAttribute(mustUnderstandQName);
    assertTrue("SOAP 1.1 :- Mustunderstand attribute not found", mustUnderstandAttribute != null);
    assertTrue("SOAP 1.1 :- Mustunderstand value mismatch", mustUnderstandAttribute.getAttributeValue().equals(SOAPConstants.ATTR_MUSTUNDERSTAND_1));
    assertTrue("SOAP 1.1 :- Mustunderstand attribute namespace uri mismatch", mustUnderstandAttribute.getNamespace().getNamespaceURI().equals(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
    assertTrue("SOAP 1.1 :- Actor attribute name not found", actorAttribute != null);
    assertTrue("SOAP 1.1 :- Actor value mismatch", actorAttribute.getAttributeValue().trim().equals("http://schemas.xmlsoap.org/soap/" + SOAP11Constants.ATTR_ACTOR + "/" + "next"));
    assertTrue("SOAP 1.1 :- Actor attribute namespace uri mismatch", actorAttribute.getNamespace().getNamespaceURI().equals(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
    SOAPBody body = soap11Envelope.getBody();
    assertTrue("SOAP 1.1 :- Body local name mismatch", body.getLocalName().equals(SOAPConstants.BODY_LOCAL_NAME));
    assertTrue("SOAP 1.1 :- Body namespace uri mismatch", body.getNamespace().getNamespaceURI().equals(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
    SOAPFault fault = body.getFault();
    assertTrue("SOAP 1.1 :- Fault namespace uri mismatch", fault.getNamespace().getNamespaceURI().equals(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
    Iterator<OMNode> iteratorInFault = fault.getChildren();
    iteratorInFault.next();
    SOAPFaultCode code = (SOAPFaultCode) iteratorInFault.next();
    assertEquals("SOAP Fault code local name mismatch", code.getLocalName(), (SOAP11Constants.SOAP_FAULT_CODE_LOCAL_NAME));
    assertEquals("SOAP 1.1 :- Fault code value mismatch", code.getText().trim(), "env:Sender");
    iteratorInFault.next();
    SOAPFaultReason reason = (SOAPFaultReason) iteratorInFault.next();
    assertTrue("SOAP 1.1 :- Fault string local name mismatch", reason.getLocalName().equals(SOAP11Constants.SOAP_FAULT_STRING_LOCAL_NAME));
    assertTrue("SOAP 1.1 :- Fault string value mismatch", reason.getText().trim().equals("Sender Timeout"));
    iteratorInFault.next();
    SOAPFaultRole role = (SOAPFaultRole) iteratorInFault.next();
    assertTrue("SOAP 1.1 :- Fault actor local name mismatch", role.getLocalName().equals(SOAP11Constants.SOAP_FAULT_ACTOR_LOCAL_NAME));
    assertTrue("SOAP 1.1 :- Actor value mismatch", role.getText().trim().equals("http://schemas.xmlsoap.org/soap/envelope/actor/ultimateReceiver"));
    iteratorInFault.next();
    SOAPFaultDetail detail = (SOAPFaultDetail) iteratorInFault.next();
    assertTrue("SOAP 1.1 :- Fault detail local name mismatch", detail.getLocalName().equals(SOAP11Constants.SOAP_FAULT_DETAIL_LOCAL_NAME));
    assertTrue("SOAP 1.2 :- Text in detail mismatch", detail.getText().trim().equals("Details of error"));
    Iterator<OMNode> iteratorInDetail = detail.getChildren();
    iteratorInDetail.next();
    OMElement element1 = (OMElement) iteratorInDetail.next();
    assertTrue("SOAP 1.1 :- MaxTime element mismatch", element1.getLocalName().equals("MaxTime"));
    assertTrue("SOAP 1.1 :- MaxTime element namespace mismatch", element1.getNamespace().getNamespaceURI().equals("http:www.sample.org"));
    assertTrue("SOAP 1.1 :- Text value in MaxTime element mismatch", element1.getText().trim().equals("P5M"));
    Iterator<OMAttribute> attributeIterator = element1.getAllAttributes();
    OMAttribute attributeInMaxTime = attributeIterator.next();
    assertTrue("SOAP 1.1 :- Attribute local name mismatch", attributeInMaxTime.getLocalName().equals("detail"));
    assertTrue("SOAP 1.1 :- Attribute namespace mismatch", attributeInMaxTime.getNamespace().getNamespaceURI().equals("http:www.sample.org"));
    assertTrue("SOAP 1.1 :- Attribute value mismatch", attributeInMaxTime.getAttributeValue().equals("This is only a test"));
    iteratorInDetail.next();
    OMElement element2 = (OMElement) iteratorInDetail.next();
    assertTrue("SOAP 1.1 :- AveTime element mismatch", element2.getLocalName().equals("AveTime"));
    assertTrue("SOAP 1.1 :- AveTime element namespace mismatch", element2.getNamespace().getNamespaceURI().equals("http:www.sample.org"));
    Iterator<OMNode> iteratorInAveTimeElement = element2.getChildren();
    iteratorInAveTimeElement.next();
    OMElement element21 = (OMElement) iteratorInAveTimeElement.next();
    assertTrue("SOAP 1.1 :- Time element mismatch", element21.getLocalName().equals("Time"));
    assertTrue("SOAP 1.1 :- Time element namespace mismatch", element21.getNamespace().getNamespaceURI().equals("http:www.sample.org"));
    assertTrue("SOAP 1.1 :- Text value in Time element mismatch", element21.getText().trim().equals("P3M"));
    iteratorInFault.next();
    OMElement testElement = (OMElement) iteratorInFault.next();
    assertTrue("SOAP 1.1 :- Test element mismatch", testElement.getLocalName().equals("Test"));
    assertTrue("SOAP 1.1 :- Test element namespace mismatch", testElement.getNamespace().getNamespaceURI().equals("http:www.Test.org"));
    OMElement childOfTestElement = testElement.getFirstElement();
    assertTrue("SOAP 1.1 :- Test element child local name mismatch", childOfTestElement.getLocalName().equals("TestElement"));
    assertTrue("SOAP 1.1 :- Test element child namespace mismatch", childOfTestElement.getNamespace().getNamespaceURI().equals("http:www.Test.org"));
    assertTrue("SOAP 1.1 :- Test element child value mismatch", childOfTestElement.getText().trim().equals("This is only a test"));
    soap11Builder.close();
}
Also used : SOAPFaultCode(org.apache.axiom.soap.SOAPFaultCode) SOAPFaultRole(org.apache.axiom.soap.SOAPFaultRole) QName(javax.xml.namespace.QName) SOAPFaultReason(org.apache.axiom.soap.SOAPFaultReason) SOAPFaultDetail(org.apache.axiom.soap.SOAPFaultDetail) SOAPHeaderBlock(org.apache.axiom.soap.SOAPHeaderBlock) OMElement(org.apache.axiom.om.OMElement) SOAPEnvelope(org.apache.axiom.soap.SOAPEnvelope) OMNode(org.apache.axiom.om.OMNode) SOAPBody(org.apache.axiom.soap.SOAPBody) StringReader(java.io.StringReader) SOAPFault(org.apache.axiom.soap.SOAPFault) OMXMLParserWrapper(org.apache.axiom.om.OMXMLParserWrapper) OMAttribute(org.apache.axiom.om.OMAttribute) SOAPHeader(org.apache.axiom.soap.SOAPHeader)

Aggregations

SOAPEnvelope (org.apache.axiom.soap.SOAPEnvelope)105 OMElement (org.apache.axiom.om.OMElement)32 SOAPBody (org.apache.axiom.soap.SOAPBody)24 OMNamespace (org.apache.axiom.om.OMNamespace)22 SOAPHeader (org.apache.axiom.soap.SOAPHeader)20 SOAPFactory (org.apache.axiom.soap.SOAPFactory)18 QName (javax.xml.namespace.QName)16 SOAPFault (org.apache.axiom.soap.SOAPFault)14 ByteArrayInputStream (java.io.ByteArrayInputStream)12 SOAPHeaderBlock (org.apache.axiom.soap.SOAPHeaderBlock)12 OMNode (org.apache.axiom.om.OMNode)11 SOAPModelBuilder (org.apache.axiom.soap.SOAPModelBuilder)11 MessageContext (org.apache.axis2.context.MessageContext)10 SOAPFaultCode (org.apache.axiom.soap.SOAPFaultCode)8 InputStream (java.io.InputStream)7 XMLStreamException (javax.xml.stream.XMLStreamException)7 ByteArrayOutputStream (java.io.ByteArrayOutputStream)6 StringReader (java.io.StringReader)6 DataHandler (javax.activation.DataHandler)6 OMException (org.apache.axiom.om.OMException)6