[prev in list] [next in list] [prev in thread] [next in thread] 

List:       axis-dev
Subject:    cvs commit: xml-axis/java/prototype/TRL_Proposal/samples/server ReceiptResponder.java
From:       nakamury () apache ! org
Date:       2001-01-30 7:16:01
[Download RAW message or body]

nakamury    01/01/29 23:16:01

  Added:       java/prototype/TRL_Proposal/samples/server
                        ReceiptResponder.java
  Log:
  A sample server application (includes digital signature verificatio)
  
  Revision  Changes    Path
  1.1                  xml-axis/java/prototype/TRL_Proposal/samples/server/ReceiptResponder.java
  
  Index: ReceiptResponder.java
  ===================================================================
  package samples.server;
  
  import org.apache.axis.Handler;
  import org.apache.axis.MessageContext;
  import org.apache.axis.util.xml.DOMConverter;
  import org.apache.axis.util.xml.DOMHandler;
  import org.apache.axis.util.Logger;
  
  import org.apache.axis.message.SOAPDocument;
  import org.apache.axis.message.SOAPEnvelope;
  import org.apache.axis.message.SOAPBody;
  import org.apache.axis.message.SOAPBodyEntry;
  import org.apache.axis.message.impl.SOAPDocumentImpl;
  
  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
  import org.w3c.dom.Node;
  import org.w3c.dom.NodeList;
  import org.apache.xerces.dom.DocumentImpl;
  
  public class ReceiptResponder implements Handler {
  
      final private String RECEIPT="-received";
  
      public void init() {};
  
      public void cleanup() {};
  
      public void invoke(MessageContext msgCntxt) {
          try {
              SOAPDocument req = msgCntxt.getMessage();
              Logger.normal(DOMConverter.toString(req.getDocument()));
              
              SOAPDocument res = createResponseMessage(req);
              msgCntxt.setMessage(res);
          } catch(Exception e) {
              e.printStackTrace();
          }
      };
      
      private SOAPDocument createResponseMessage(SOAPDocument req) {
          try {
              Element requestRoot = req.getEnvelope().getBody().getBodyEntry(0).getDOMEntity();
              String reqRootName = requestRoot.getTagName();
              String reqRootNS = requestRoot.getAttribute("xmlns");
              
              Document responseDoc = new DocumentImpl();
              Element responseRoot = responseDoc.createElement(reqRootName+RECEIPT);
              responseRoot.setAttribute("xmlns", reqRootNS);
              NodeList list = requestRoot.getChildNodes();
              int length = list.getLength();
              for (int i=0; i<length; i++) {
                  Node reqNode = list.item(i);
                  Node resNode = responseDoc.importNode(reqNode, true);
                  responseRoot.appendChild(resNode);
              }
              
              responseDoc.appendChild(responseRoot);
              Logger.normal(DOMConverter.toString(responseDoc));
  
              SOAPDocument doc = new SOAPDocumentImpl();
              SOAPEnvelope env = doc.getEnvelope() ;
              SOAPBody body = env.getBody() ;
              SOAPBodyEntry bodyEntry;
              SOAPBodyEntry entry = 
                  doc.createBodyEntry(responseDoc.getDocumentElement());
              body.addBodyEntry(entry);
              return doc;
          } catch (Exception e) {
              e.printStackTrace();
          }
          return null;
      }
  };
  
  
  

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic