org.apache.axis.transport.http
Class QSWSDLHandler

java.lang.Object
  extended byorg.apache.axis.transport.http.AbstractQueryStringHandler
      extended byorg.apache.axis.transport.http.QSWSDLHandler
All Implemented Interfaces:
QSHandler

public class QSWSDLHandler
extends AbstractQueryStringHandler

The QSWSDLHandler class is a handler which provides an AXIS service's WSDL document when the query string "wsdl" (ignoring case) is encountered in an AXIS servlet invocation.

Author:
Curtiss Howard (code mostly from AxisServlet class), Doug Davis (dug@us.ibm.com), Steve Loughran, Ian P. Springer, Sal Campana

Field Summary
 
Fields inherited from class org.apache.axis.transport.http.AbstractQueryStringHandler
exceptionLog, log
 
Constructor Summary
QSWSDLHandler()
           
 
Method Summary
protected  java.lang.String getEndpointURL(MessageContext msgContext)
          Returns the endpoint URL that should be used in the returned WSDL.
 void invoke(MessageContext msgContext)
          Performs the action associated with this particular query string handler.
 void reportNoWSDL(javax.servlet.http.HttpServletResponse res, java.io.PrintWriter writer, java.lang.String moreDetailCode, AxisFault axisFault)
          Report that we have no WSDL.
 void reportWSDL(org.w3c.dom.Document doc, java.io.PrintWriter writer)
          Report WSDL.
protected  void updateSoapAddressLocationURLs(org.w3c.dom.Document wsdlDoc, MessageContext msgContext)
          Updates the soap:address locations for all ports in the WSDL using the URL from the request as the base portion for the updated locations, ensuring the WSDL returned to the client contains the correct location URL.
 
Methods inherited from class org.apache.axis.transport.http.AbstractQueryStringHandler
configureFromContext, configureResponseFromAxisFault, convertExceptionToAxisFault, isDevelopment, processAxisFault, writeFault
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

QSWSDLHandler

public QSWSDLHandler()
Method Detail

invoke

public void invoke(MessageContext msgContext)
            throws AxisFault
Performs the action associated with this particular query string handler.

Parameters:
msgContext - a MessageContext object containing message context information for this query string handler.
Throws:
AxisFault - if an error occurs

reportWSDL

public void reportWSDL(org.w3c.dom.Document doc,
                       java.io.PrintWriter writer)
Report WSDL.

Parameters:
doc -
writer -

reportNoWSDL

public void reportNoWSDL(javax.servlet.http.HttpServletResponse res,
                         java.io.PrintWriter writer,
                         java.lang.String moreDetailCode,
                         AxisFault axisFault)
Report that we have no WSDL.

Parameters:
res -
writer -
moreDetailCode - optional name of a message to provide more detail
axisFault - optional fault string, for extra info at debug time only

updateSoapAddressLocationURLs

protected void updateSoapAddressLocationURLs(org.w3c.dom.Document wsdlDoc,
                                             MessageContext msgContext)
                                      throws AxisFault
Updates the soap:address locations for all ports in the WSDL using the URL from the request as the base portion for the updated locations, ensuring the WSDL returned to the client contains the correct location URL.

Parameters:
wsdlDoc - the WSDL as a DOM document
msgContext - the current Axis JAX-RPC message context
Throws:
AxisFault - if we fail to obtain the list of deployed service names from the server config

getEndpointURL

protected java.lang.String getEndpointURL(MessageContext msgContext)
                                   throws AxisFault
Returns the endpoint URL that should be used in the returned WSDL.

Parameters:
msgContext - the current Axis JAX-RPC message context
Returns:
the endpoint URL that should be used in the returned WSDL
Throws:
AxisFault - if we fail to obtain the ServiceDesc for this service


Copyright ? 2005 Apache Web Services Project. All Rights Reserved.