Package mx4j.tools.remote.soap

Source Code of mx4j.tools.remote.soap.ConnectionIDRequestHandler

/*
* Copyright (C) The MX4J Contributors.
* All rights reserved.
*
* This software is distributed under the terms of the MX4J License version 1.0.
* See the terms of the MX4J License in the documentation provided with this software.
*/

package mx4j.tools.remote.soap;

import org.apache.axis.AxisFault;
import org.apache.axis.Message;
import org.apache.axis.MessageContext;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.handlers.BasicHandler;
import org.apache.axis.message.SOAPEnvelope;
import org.apache.axis.message.SOAPHeaderElement;

/**
* This class is used in the Axis deployment descriptor, and parses the SOAP header
* (on server-side) that contains the connection ID sent by the client.
*
* @version $Revision: 1.5 $
*/
public class ConnectionIDRequestHandler extends BasicHandler
{
   public void invoke(MessageContext context) throws AxisFault
   {
      Message message = context.getRequestMessage();
      SOAPEnvelope envelope = message.getSOAPEnvelope();
      SOAPHeaderElement header = envelope.getHeaderByName(SOAPConstants.NAMESPACE_URI, SOAPConstants.CONNECTION_ID_HEADER_NAME);
      if (header == null) throw new AxisFault("Could not find mandatory header " + SOAPConstants.CONNECTION_ID_HEADER_NAME);

      try
      {
         String id = (String)header.getValueAsType(XMLType.XSD_STRING);
         if (id != null && id.length() > 0) context.setProperty(SOAPConstants.CONNECTION_ID_HEADER_NAME, id);
      }
      catch (Exception x)
      {
         throw AxisFault.makeFault(x);
      }
      finally
      {
         header.setProcessed(true);
      }
   }
}
TOP

Related Classes of mx4j.tools.remote.soap.ConnectionIDRequestHandler

TOP
Copyright © 2018 www.massapi.com. 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.