Package org.apache.axiom.soap

Examples of org.apache.axiom.soap.SOAPHeaderBlock


                SOAPHeader soapHeader = env.getHeader();
                ArrayList processedHeaderQNames = new ArrayList();
                if(soapHeader != null) {
                    Iterator headerBlocs = soapHeader.getChildElements();
                    while (headerBlocs.hasNext()) {
                        SOAPHeaderBlock element = (SOAPHeaderBlock) headerBlocs.next();
                        if(element.isProcessed()) {
                            processedHeaderQNames.add(element.getQName());
                        }
                    }
                }

                // Check the namespace and find SOAP version and factory
View Full Code Here


                if(soapHeader != null) {
                    Iterator headerBlocs = soapHeader.getChildElements();
                    while (headerBlocs.hasNext()) {
                     
                      OMElement element = (OMElement)headerBlocs.next();
                      SOAPHeaderBlock header = null;
                     
                      if (element instanceof SOAPHeaderBlock) {
                            header = (SOAPHeaderBlock) element;
                           
                        // If a header block is not an instance of SOAPHeaderBlock, it means that
                        // it is a header we have added in rampart eg. EncryptedHeader and should
                        // be converted to SOAPHeaderBlock for processing
                      } else {
                        header = soapHeader.addHeaderBlock(element.getLocalName(), element.getNamespace());
                        Iterator attrIter = element.getAllAttributes();
                        while (attrIter.hasNext()) {
                          OMAttribute attr = (OMAttribute)attrIter.next();
                          header.addAttribute(attr.getLocalName(), attr.getAttributeValue(), attr.getNamespace());
                        }
                        Iterator nsIter  = element.getAllDeclaredNamespaces();
                        while (nsIter.hasNext()) {
                          OMNamespace ns =  (OMNamespace) nsIter.next();
                          header.declareNamespace(ns);
                        }
                        // retrieve all child nodes (including any text nodes)
                        // and re-attach to header block
                        Iterator children = element.getChildren();
                        while (children.hasNext()) {
                          OMNode child = (OMNode)children.next();
                          child.detach();
                          header.addChild(child);
                        }
                       
                        element.detach();
                       
                        soapHeader.build();
                       
                        header.setProcessed();
                       
                      }
                     
                        if(header.isProcessed()) {
                            processedHeaderQNames.add(element.getQName());
                        }
                    }
               
                }
                XMLStreamReader reader = ((OMElement) doc.getDocumentElement())
                        .getXMLStreamReader();
                StAXSOAPModelBuilder stAXSOAPModelBuilder = new StAXSOAPModelBuilder(
                        reader, null);
                SOAPEnvelope envelope = stAXSOAPModelBuilder.getSOAPEnvelope();
               
                //Set the processed flag of the processed headers
                SOAPHeader header = envelope.getHeader();
                for (Iterator iter = processedHeaderQNames.iterator(); iter
                        .hasNext();) {
                    QName name = (QName) iter.next();
                    Iterator omKids = header.getChildrenWithName(name);
                    if(omKids.hasNext()) {
                        ((SOAPHeaderBlock)omKids.next()).setProcessed();
                    }
                }
               
View Full Code Here

            for (Iterator iter = soapHeader.examineAllHeaderBlocks(); iter.hasNext();) {

                Object o = iter.next();
                if (o instanceof SOAPHeaderBlock) {

                    SOAPHeaderBlock headerBlock = (SOAPHeaderBlock) o;
                    sb.append(separator).append("\t").append(
                        headerBlock.getLocalName()).append(" : ").append(headerBlock.getText());

                } else if (o instanceof OMElement) {

                    OMElement headerElem = (OMElement) o;
                    sb.append(separator).append("\t").append(
View Full Code Here

                serviceClient.setOptions(options);
               
                if (i == 31) {
                    OMNamespace omNamespace = OMAbstractFactory.getOMFactory().createOMNamespace(
                            "http://sample.com", "myNs");
                    SOAPHeaderBlock header = OMAbstractFactory.getSOAP12Factory()
                            .createSOAPHeaderBlock("VitalHeader", omNamespace);
                    header.addChild(AXIOMUtil.stringToOM("<foo>This is a sample Header</foo>"));
                    serviceClient.addHeader(header);
                }
               
                // Invoking the serive in the TestCase-28 should fail. So handling it differently..
                if (i == 28) {
View Full Code Here

            header = factory.createSOAPHeader(envelope);
        }
        OMElement element = xmlHelper.toOMElement(content);
        // We can't add the element directly to the SOAPHeader. Instead, we need to copy the
        // information over to a SOAPHeaderBlock.
        SOAPHeaderBlock headerBlock = header.addHeaderBlock(element.getLocalName(),
                element.getNamespace());
        for (Iterator it = element.getAllAttributes(); it.hasNext(); ) {
            headerBlock.addAttribute((OMAttribute)it.next());
        }
        headerBlock.setMustUnderstand(mustUnderstand);
        OMNode child = element.getFirstOMChild();
        while (child != null) {
            // Get the next child before addChild will detach the node from its original place.
            OMNode next = child.getNextOMSibling();
            headerBlock.addChild(child);
            child = next;
        }
    }
View Full Code Here

      factory = defaultFactory;
   
    OMNamespace rmNamespace = factory.createOMNamespace(namespaceValue,Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM);
   
    SOAPHeader SOAPHeader = (SOAPHeader) header;
    SOAPHeaderBlock sequenceAcknowledgementHeaderBlock = SOAPHeader.addHeaderBlock(
        Sandesha2Constants.WSRM_COMMON.SEQUENCE_ACK,rmNamespace);
   
    if (sequenceAcknowledgementHeaderBlock == null)
      throw new OMException("Cant set sequence acknowledgement since the element is null");

    if (identifier == null)
      throw new OMException(
          "Cant set the sequence since Identifier is null");

    sequenceAcknowledgementHeaderBlock.setMustUnderstand(isMustUnderstand());
    identifier.toOMElement(sequenceAcknowledgementHeaderBlock);

    Iterator ackRangeIt = acknowledgementRangeList.iterator();
    while (ackRangeIt.hasNext()) {
      AcknowledgementRange ackRange = (AcknowledgementRange) ackRangeIt
View Full Code Here

   
    OMFactory factory = header.getOMFactory();
    OMNamespace rmNamespace = factory.createOMNamespace(namespaceValue,Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM);

    SOAPHeader SOAPHdr = (SOAPHeader) header;
    SOAPHeaderBlock ackReqHdrBlock = SOAPHdr.addHeaderBlock(Sandesha2Constants.WSRM_COMMON.ACK_REQUESTED, rmNamespace);
    ackReqHdrBlock.setMustUnderstand(isMustUnderstand());

    identifier.toOMElement(ackReqHdrBlock);

    if (messageNumber != null) {
      messageNumber.toOMElement(ackReqHdrBlock);
View Full Code Here

    if (factory==null)
      factory = defaultFactory;

    OMNamespace rmNamespace = factory.createOMNamespace(
        namespaceValue, Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM);
    SOAPHeaderBlock sequenceHeaderBlock = soapHeader.addHeaderBlock(
        Sandesha2Constants.WSRM_COMMON.SEQUENCE, rmNamespace);
   
    sequenceHeaderBlock.setMustUnderstand(isMustUnderstand());
    identifier.toOMElement(sequenceHeaderBlock);
    messageNumber.toOMElement(sequenceHeaderBlock);
    if (lastMessage != null)
      lastMessage.toOMElement(sequenceHeaderBlock);
View Full Code Here

    SOAPHeader header = envelope.getHeader();
    if (header != null) {
      Iterator childrenOfOldEnv = header.getChildElements();
      while (childrenOfOldEnv.hasNext()) {
       
        SOAPHeaderBlock oldEnvHeaderBlock = (SOAPHeaderBlock) childrenOfOldEnv.next();

        QName oldEnvHeaderBlockQName = oldEnvHeaderBlock.getQName();
        if (oldEnvHeaderBlockQName != null) {
          // If we've processed the part and it has a must understand, set it as processed
          if (oldEnvHeaderBlock.isProcessed() && oldEnvHeaderBlock.getMustUnderstand()) {
            // Remove the MustUnderstand part
            oldEnvHeaderBlock.setMustUnderstand(false);
          }
        }
      }
    }
   
View Full Code Here

  public OMElement getOriginalSequenceAckElement() {
    return originalSequenceAckElement;
  }

  public void toHeader(SOAPHeader header) throws SandeshaException{
    SOAPHeaderBlock sequenceAcknowledgementHeaderBlock = header.addHeaderBlock(
        Sandesha2Constants.WSRM_COMMON.SEQUENCE_ACK,omNamespace);
   
    if (identifier == null)
      throw new OMException(
          SandeshaMessageHelper.getMessage(
              SandeshaMessageKeys.invalidIdentifier,
              header.toString()));

    // SequenceACK messages should always have the MustUnderstand flag set to true
    // Unless it is a piggybacked ack
    if(piggybacked){
      sequenceAcknowledgementHeaderBlock.setMustUnderstand(false);
    } else {
      sequenceAcknowledgementHeaderBlock.setMustUnderstand(true);
    }
   
    identifier.toOMElement(sequenceAcknowledgementHeaderBlock, omNamespace);

    Iterator<Range> ackRangeIt = acknowledgementRangeList.iterator();
    while (ackRangeIt.hasNext()) {
      Range ackRange = (Range) ackRangeIt.next();
     
      if (ackRange.upperValue <= 0 || ackRange.lowerValue <= 0 || ackRange.lowerValue > ackRange.upperValue)
        throw new OMException(
            SandeshaMessageHelper.getMessage(
                SandeshaMessageKeys.ackRandDoesNotHaveCorrectValues,
                ackRange.upperValue + ":" + ackRange.lowerValue));

      OMFactory factory = sequenceAcknowledgementHeaderBlock.getOMFactory();
     
      OMAttribute lowerAttrib = factory.createOMAttribute(
          Sandesha2Constants.WSRM_COMMON.LOWER, null, Long.toString(ackRange.lowerValue));
      OMAttribute upperAttrib = factory.createOMAttribute(
          Sandesha2Constants.WSRM_COMMON.UPPER, null, Long.toString(ackRange.upperValue));

      OMElement acknowledgementRangeElement = factory.createOMElement(Sandesha2Constants.WSRM_COMMON.ACK_RANGE, omNamespace);
     
      acknowledgementRangeElement.addAttribute(lowerAttrib);
      acknowledgementRangeElement.addAttribute(upperAttrib);
      sequenceAcknowledgementHeaderBlock.addChild(acknowledgementRangeElement);
    }

    Iterator<Long> nackIt = nackList.iterator();
    while (nackIt.hasNext()) {
      Long nack = (Long) nackIt.next();
     
      if (nack.longValue()<=0)
        throw new OMException (SandeshaMessageHelper.getMessage(
            SandeshaMessageKeys.nackDoesNotContainValidLongValue));
           
      OMElement nackElement = sequenceAcknowledgementHeaderBlock.getOMFactory().createOMElement(Sandesha2Constants.WSRM_COMMON.NACK,omNamespace);
      nackElement.setText(nack.toString());
      sequenceAcknowledgementHeaderBlock.addChild(nackElement);
    }
   
    String rmSpecVersion = SpecSpecificConstants.getSpecVersionString(namespaceValue);

    //setting a 'None' when nothing is there (for the correct RM version)
    if (ackNone==false && acknowledgementRangeList.size()==0 && nackList.size()==0 && SpecSpecificConstants.isAckNoneAllowed(rmSpecVersion)) {
      ackNone = true;
    }
   
    if (ackNone!=false) {
      if (!SpecSpecificConstants.isAckNoneAllowed(rmSpecVersion)) {
        throw new SandeshaException (SandeshaMessageHelper.getMessage(
            SandeshaMessageKeys.noneNotAllowedNamespace,
            rmSpecVersion));
      }
     
      if (acknowledgementRangeList.size()>0) {
        throw new SandeshaException (SandeshaMessageHelper.getMessage(
            SandeshaMessageKeys.noneNotAllowedAckRangesPresent));
      }
     
      if (nackList.size()>0) {
        throw new SandeshaException (SandeshaMessageHelper.getMessage(
            SandeshaMessageKeys.noneNotAllowedNackPresent));
      }
      OMElement noneElement = sequenceAcknowledgementHeaderBlock.getOMFactory().createOMElement(Sandesha2Constants.WSRM_COMMON.NONE, omNamespace);
      sequenceAcknowledgementHeaderBlock.addChild(noneElement);
    }
   
    if (ackFinal!=false) {
      if (!SpecSpecificConstants.isAckFinalAllowed(rmSpecVersion)) {
        throw new SandeshaException (SandeshaMessageHelper.getMessage(
            SandeshaMessageKeys.finalNotAllowedNamespace));
      }
     
      if (nackList.size()>0) {
        throw new SandeshaException (SandeshaMessageHelper.getMessage(
            SandeshaMessageKeys.cannotHaveFinalWithNack));
      }
      OMElement finalElement = sequenceAcknowledgementHeaderBlock.getOMFactory().createOMElement(Sandesha2Constants.WSRM_COMMON.FINAL, omNamespace);
      sequenceAcknowledgementHeaderBlock.addChild(finalElement);
    }
  }
View Full Code Here

TOP

Related Classes of org.apache.axiom.soap.SOAPHeaderBlock

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.