Package org.apache.axis.message

Examples of org.apache.axis.message.SOAPHeaderElement


        processAck(msgContext.getRequestMessage().getSOAPEnvelope());
    }

    public void processAck(SOAPEnvelope req) throws AxisFault
    {
        SOAPHeaderElement header = req.getHeaderByName(NS_URI_WSRM, "SequenceAcknowledgement");
        if (header == null)
            return// Fault?

        Iterator i = header.getChildElements(new PrefixedQName(NS_URI_WSU, "Identifier", null));
        if (!i.hasNext()) {
            // return fault
            throw new AxisFault("WSRM.Fault", "Missing identifier in Sequence", null, null);
        }

        MessageElement el = (MessageElement)i.next();
        String id = el.getValue();
        MySequence seq = (MySequence)sequences.get(id);
        if (seq == null) {
            // Acknowledging a sequence I don't know about...
            throw new AxisFault("WSRM.UnknownSequence", "Don't recognize ack of sequence '" + id + "'", null, null);
        }

        i = header.getChildElements(new PrefixedQName(NS_URI_WSRM, "AcknowledgementRange", null));
        while (i.hasNext()) {
            el = (MessageElement)i.next();
            String val = el.getAttributeValue("Upper");
            int upper = Integer.parseInt(val);
            val = el.getAttributeValue("Lower");
            int lower = Integer.parseInt(val);
            acknowledgeRange(seq, lower, upper);
        }

        header.setProcessed(true);

        header = req.getHeaderByName(NS_URI_WSA, "From");
        if (header != null) {
            header.setProcessed(true);
        }

        header = req.getHeaderByName(NS_URI_WSA, "To");
        if (header != null) {
            header.setProcessed(true);
        }

        header = req.getHeaderByName(NS_URI_WSA, "MessageID");
        if (header != null) {
            header.setProcessed(true);
        }

        header = req.getHeaderByName(NS_URI_WSA, "Action");
        if (header != null) {
            header.setProcessed(true);
        }
    }
View Full Code Here


            curMsgNum = myseq.currentMsgNum++;
        }
        Integer seq = new Integer(curMsgNum);
        String myAddr = fromAddr;

        SOAPHeaderElement header =
                new SOAPHeaderElement(SEQUENCE_QNAME.getNamespaceURI(),
                                      SEQUENCE_QNAME.getLocalPart());
        MessageElement el;

        el = new MessageElement(IDENTIFIER_QNAME, identifier);
        header.addChild(el);

        el = new MessageElement(MSGNUM_QNAME, seq);
        header.addChild(el);
        if (isLast) {
            el = new MessageElement(NS_URI_WSRM, "LastMessage");
            header.addChild(el);
        }

        env.addHeader(header);

        header = new SOAPHeaderElement(NS_URI_WSA, "Action", PING_URI);
        header.setMustUnderstand(true);
        env.addHeader(header);

        header = new SOAPHeaderElement(NS_URI_WSA, "From");
        header.setMustUnderstand(true);
        el = new MessageElement(new QName(NS_URI_WSA, "Address"), myAddr);
        header.addChild(el);
        env.addHeader(header);

        header = new SOAPHeaderElement(NS_URI_WSA, "To", toAddr);
        header.setMustUnderstand(true);
        env.addHeader(header);

        header = new SOAPHeaderElement(NS_URI_WSA, "MessageID", ReliableMessagingHandler.generateNewMsgID());
        header.setMustUnderstand(true);
        env.addHeader(header);

        MessageRecord msgRec = new MessageRecord();
        msgRec.env = env;
        msgRec.sequenceNumber = curMsgNum;
View Full Code Here

     * Invoke should rethrow any exceptions it catches, wrapped in
     * an AxisFault.
     */
    public void invoke(MessageContext msgContext) throws AxisFault {
        SOAPEnvelope req = msgContext.getRequestMessage().getSOAPEnvelope();
        SOAPHeaderElement header = req.getHeaderByName(NS_URI_WSRM, "Sequence");
        if (header == null)
            return;

        Iterator i = header.getChildElements(new PrefixedQName(NS_URI_WSU, "Identifier", null));
        if (!i.hasNext()) {
            // return fault
            throw new AxisFault("WSRM.Fault", "Missing identifier in Sequence", null, null);
        }

        MessageElement el = (MessageElement)i.next();
        String id = el.getValue();
        Sequence seq = (Sequence)sequences.get(id);
        if (seq == null) {
            seq = new Sequence(id);
            sequences.put(id, seq);
        }

        i = header.getChildElements(new PrefixedQName(NS_URI_WSRM, "MessageNumber", null));
        el = (MessageElement)i.next();

        // We've received a message with a given ID.
        int seqNum = Integer.parseInt(el.getValue());
        int nextSeq = seq.maxReceived + 1;
        if (seqNum < nextSeq) {
            Integer s = new Integer(seqNum);
            if (seq.missing.contains(s)) {
                seq.missing.remove(s);
            }
        } else {
            if (seqNum > nextSeq) {
                // Missing everything between maxReceived and this
                for (int n = nextSeq; n < seqNum; n++) {
                    seq.missing.add(new Integer(n));
                }
            }
            seq.maxReceived = seqNum;
        }

        header.setProcessed(true);

        String from = null;
        header = req.getHeaderByName(NS_URI_WSA, "From");
        if (header != null) {
            i = header.getChildElements(new PrefixedQName(NS_URI_WSA, "Address", null));
            if (!i.hasNext()) {
                throw new AxisFault("WSRM.NoAddress", "No <Address> element in <From> header", null, null);
            }
            el = (MessageElement)i.next();
            from = el.getValue();
            header.setProcessed(true);
        }

        msgContext.setProperty("wsrm.From", from);

        // Always schedule an async ack if there's a valid From
        boolean doSynchronousAcks = (URI_ANONYMOUS.equals(from));

        if (seq.endpoint == null)
            seq.endpoint = from;

        if (!doSynchronousAcks) {
            AckTask.getSingleton().scheduleAck(seq);
        } else {
            Message respMsg = msgContext.getResponseMessage();
            if (respMsg == null) {
                respMsg = new Message(new SOAPEnvelope());
                msgContext.setResponseMessage(respMsg);
            }
            SOAPEnvelope env = respMsg.getSOAPEnvelope();
            try {
                generateAck(env, seq);
            } catch (SOAPException e) {
                e.printStackTrace()//To change body of catch statement use Options | File Templates.
            }
        }

        header = req.getHeaderByName(NS_URI_WSA, "To");
        if (header != null) {
            header.setProcessed(true);
        }

        header = req.getHeaderByName(NS_URI_WSA, "MessageID");
        if (header != null) {
            header.setProcessed(true);
        }

        header = req.getHeaderByName(NS_URI_WSA, "Action");
        if (header != null) {
            header.setProcessed(true);
        }

    }
View Full Code Here

        }

    }

    public static void generateAck(SOAPEnvelope env, Sequence seq) throws SOAPException {
        SOAPHeaderElement seqHeader = new SOAPHeaderElement(NS_URI_WSRM, "SequenceAcknowledgement");
        seqHeader.setMustUnderstand(true);
        MessageElement el = new MessageElement(IDENTIFIER_QNAME, seq.id);
        seqHeader.addChild(el);

        Iterator i = seq.missing.iterator();
        int lastMissing = 1;
        while (i.hasNext()) {
            int id = ((Integer)i.next()).intValue();
            ackRange(lastMissing, id - 1, seqHeader);
            lastMissing = id + 1;
        }
        ackRange(lastMissing, seq.maxReceived, seqHeader);

        env.addHeader(seqHeader);
        SOAPHeaderElement actionHeader = new SOAPHeaderElement(NS_URI_WSA, "Action", URI_ACK);
        actionHeader.setMustUnderstand(true);
        env.addHeader(actionHeader);

        SOAPHeaderElement toHeader = new SOAPHeaderElement(NS_URI_WSA, "To", seq.endpoint);
        env.addHeader(toHeader);

        SOAPHeaderElement idHeader = new SOAPHeaderElement(NS_URI_WSA, "MessageID", generateNewMsgID());
        idHeader.setMustUnderstand(true);
        env.addHeader(idHeader);
    }
View Full Code Here

     * @param namespace
     * @param partName that uniquely identify a header object.
     * @param headerValue Object that is sent in the request as a SOAPHeader
     */
    public void setHeader(String namespace, String partName, Object headerValue) {
        headers.add(new SOAPHeaderElement(namespace, partName, headerValue));
    }
View Full Code Here

    /**
     * Get the header element
     */
    public SOAPHeaderElement getHeader(String namespace, String partName) {
        for(int i=0;i<headers.size();i++) {
            SOAPHeaderElement header = (SOAPHeaderElement)headers.get(i);
            if(header.getNamespaceURI().equals(namespace) &&
               header.getName().equals(partName))
                return header;
        }
        return null;
    }
View Full Code Here

        envelope.addBodyElement(fault);

        // add any headers we need
        if (faultHeaders != null) {
            for (Iterator i = faultHeaders.iterator(); i.hasNext();) {
                SOAPHeaderElement header = (SOAPHeaderElement) i.next();
                envelope.addHeader(header);
            }
        }

        envelope.output(context);
View Full Code Here

          Vector oldHeaders= currentMessageAsEnvelope.getHeaders();
          if( null != newHeaders && null != oldHeaders){
           Iterator ohi= oldHeaders.iterator();
           Iterator nhi= newHeaders.iterator();
           while( ohi.hasNext() && nhi.hasNext()){
             SOAPHeaderElement nhe= (SOAPHeaderElement)nhi.next();
             SOAPHeaderElement ohe= (SOAPHeaderElement)ohi.next();

             if(ohe.isProcessed()) nhe.setProcessed(true);
           }
          }

        }
View Full Code Here

  }

  public TaxDataBasicSoap getTaxService() throws Exception {
    TaxDataBasicLocator locator = new TaxDataBasicLocator();
    TaxDataBasicSoapStub service = (TaxDataBasicSoapStub)locator.getTaxDataBasicSoap();
        SOAPHeaderElement header = new SOAPHeaderElement(HEADER_NS, LICENSE_INFO);
        SOAPElement element = header.addChildElement(REGISTERED_USER);
        element.addChildElement(USER_ID).addTextNode(userid);
        element.addChildElement(PASSWORD).addTextNode(password);
        service.setHeader(header);
        return service;
  }
View Full Code Here

            throw new AxisFault("WSDoAllReceiver: cannot get SOAP header after security processing", ex);
          }

          Iterator headers = sHeader.examineHeaderElements("");

          SOAPHeaderElement headerElement = null;
          while (headers.hasNext()) {
            SOAPHeaderElement hE = (SOAPHeaderElement) headers.next();
            if (hE.getLocalName().equals(WSConstants.WSSE_LN)
                && hE.getNamespaceURI().equals(WSConstants.WSSE_NS)) {
              headerElement = hE;
              break;
            }
          }
          ((org.apache.axis.message.SOAPHeaderElement) headerElement).setProcessed(true);
View Full Code Here

TOP

Related Classes of org.apache.axis.message.SOAPHeaderElement

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.