Class RPCHandler

All Implemented Interfaces:
ContentHandler, DTDHandler, EntityResolver, ErrorHandler

public class RPCHandler extends SOAPHandler
This is the SOAPHandler which is called for each RPC parameter as we're deserializing the XML for a method call or return. In other words for this XML: <param1 xsi:type="xsd:string">Hello! 3.14159 ...we'll get onStartChild() events for and .
Author:
Glen Daniels (gdaniels@apache.org)
  • Field Details

    • log

      protected static org.apache.commons.logging.Log log
  • Constructor Details

  • Method Details

    • setOperation

      public void setOperation(OperationDesc myOperation)
    • setHeaderElement

      public void setHeaderElement(boolean value)
      Indicate RPCHandler is processing header elements
      Parameters:
      value - boolean indicating whether header elements are being processed.
    • startElement

      public void startElement(String namespace, String localName, String prefix, Attributes attributes, DeserializationContext context) throws SAXException
      This method is invoked when an element start tag is encountered. The purpose of this method in RPCHandler is to reset variables (this allows re-use of RPCHandlers)
      Overrides:
      startElement in class SOAPHandler
      Parameters:
      namespace - is the namespace of the element
      localName - is the name of the element
      prefix - is the prefix of the element
      attributes - are the attributes on the element...used to get the type
      context - is the DeserializationContext
      Throws:
      SAXException
    • onStartChild

      public SOAPHandler onStartChild(String namespace, String localName, String prefix, Attributes attributes, DeserializationContext context) throws SAXException
      Register the start of a parameter (child element of the method call element). Our job here is to figure out a) which parameter this is (based on the QName of the element or its position), and b) what type it is (based on the xsi:type attribute or operation metadata) so we can successfully deserialize it.
      Overrides:
      onStartChild in class SOAPHandler
      Throws:
      SAXException
    • endElement

      public void endElement(String namespace, String localName, DeserializationContext context) throws SAXException
      Overrides:
      endElement in class SOAPHandler
      Throws:
      SAXException