mondrian.xmla.impl
Class DefaultXmlaServlet

java.lang.Object
  extended by javax.servlet.GenericServlet
      extended by javax.servlet.http.HttpServlet
          extended by mondrian.xmla.XmlaServlet
              extended by mondrian.xmla.impl.DefaultXmlaServlet
All Implemented Interfaces:
Serializable, Servlet, ServletConfig, XmlaConstants
Direct Known Subclasses:
DynamicDatasourceXmlaServlet

public class DefaultXmlaServlet
extends XmlaServlet

Default implementation of XML/A servlet.

Author:
Gang Chen
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class mondrian.xmla.XmlaServlet
XmlaServlet.Phase
 
Field Summary
protected static String nl
           
 
Fields inherited from class mondrian.xmla.XmlaServlet
catalogLocator, charEncoding, dataSources, DEFAULT_DATASOURCE_FILE, PARAM_CALLBACKS, PARAM_CHAR_ENCODING, PARAM_DATASOURCES_CONFIG, PARAM_OPTIONAL_DATASOURCE_CONFIG, xmlaHandler
 
Fields inherited from interface mondrian.xmla.XmlaConstants
CHH_AUTHORIZATION_CODE, CHH_AUTHORIZATION_FAULT_FS, CHH_CODE, CHH_FAULT_FS, CLIENT_FAULT_FC, CONTENT_DEFAULT, CONTEXT_ROLE, CONTEXT_ROLE_NAME, CONTEXT_XMLA_SESSION_ID, CONTEXT_XMLA_SESSION_STATE, CONTEXT_XMLA_SESSION_STATE_BEGIN, CONTEXT_XMLA_SESSION_STATE_END, CONTEXT_XMLA_SESSION_STATE_WITHIN, CPOSTA_CODE, CPOSTA_FAULT_FS, CPREA_CODE, CPREA_FAULT_FS, FAULT_ACTOR, FAULT_FC_PREFIX, FAULT_FS_PREFIX, FAULT_NS_PREFIX, HSB_ACCESS_DENIED_CODE, HSB_ACCESS_DENIED_FAULT_FS, HSB_BAD_COMMAND_CODE, HSB_BAD_COMMAND_FAULT_FS, HSB_BAD_METHOD_CODE, HSB_BAD_METHOD_FAULT_FS, HSB_BAD_METHOD_NS_CODE, HSB_BAD_METHOD_NS_FAULT_FS, HSB_BAD_NON_NULLABLE_COLUMN_CODE, HSB_BAD_NON_NULLABLE_COLUMN_FAULT_FS, HSB_BAD_PROPERTIES_CODE, HSB_BAD_PROPERTIES_FAULT_FS, HSB_BAD_PROPERTIES_LIST_CODE, HSB_BAD_PROPERTIES_LIST_FAULT_FS, HSB_BAD_REQUEST_TYPE_CODE, HSB_BAD_REQUEST_TYPE_FAULT_FS, HSB_BAD_RESTRICTION_LIST_CODE, HSB_BAD_RESTRICTION_LIST_FAULT_FS, HSB_BAD_RESTRICTION_TYPE_CODE, HSB_BAD_RESTRICTION_TYPE_FAULT_FS, HSB_BAD_RESTRICTION_VALUE_CODE, HSB_BAD_RESTRICTION_VALUE_FAULT_FS, HSB_BAD_RESTRICTIONS_CODE, HSB_BAD_RESTRICTIONS_FAULT_FS, HSB_BAD_SOAP_BODY_CODE, HSB_BAD_SOAP_BODY_FAULT_FS, HSB_BAD_STATEMENT_CODE, HSB_BAD_STATEMENT_FAULT_FS, HSB_CONNECTION_DATA_SOURCE_CODE, HSB_CONNECTION_DATA_SOURCE_FAULT_FS, HSB_DISCOVER_FORMAT_CODE, HSB_DISCOVER_FORMAT_FAULT_FS, HSB_DISCOVER_UNPARSE_CODE, HSB_DISCOVER_UNPARSE_FAULT_FS, HSB_DRILL_THROUGH_FORMAT_CODE, HSB_DRILL_THROUGH_FORMAT_FAULT_FS, HSB_DRILL_THROUGH_NOT_ALLOWED_CODE, HSB_DRILL_THROUGH_NOT_ALLOWED_FAULT_FS, HSB_DRILL_THROUGH_SQL_CODE, HSB_DRILL_THROUGH_SQL_FAULT_FS, HSB_DRILLDOWN_BAD_FIRST_ROWSET_CODE, HSB_DRILLDOWN_BAD_FIRST_ROWSET_FAULT_FS, HSB_DRILLDOWN_BAD_MAXROWS_CODE, HSB_DRILLDOWN_BAD_MAXROWS_FAULT_FS, HSB_DRILLDOWN_ERROR_CODE, HSB_DRILLDOWN_ERROR_FAULT_FS, HSB_EXECUTE_QUERY_CODE, HSB_EXECUTE_QUERY_FAULT_FS, HSB_EXECUTE_UNPARSE_CODE, HSB_EXECUTE_UNPARSE_FAULT_FS, HSB_PARSE_QUERY_CODE, HSB_PARSE_QUERY_FAULT_FS, HSB_PROCESS_CODE, HSB_PROCESS_FAULT_FS, HSB_UNKNOWN_CODE, HSB_UNKNOWN_FAULT_FS, HSB_UNSUPPORTED_OPERATION_CODE, HSB_UNSUPPORTED_OPERATION_FAULT_FS, HSH_BAD_SESSION_ID_CODE, HSH_BAD_SESSION_ID_FAULT_FS, HSH_MUST_UNDERSTAND_CODE, HSH_MUST_UNDERSTAND_FAULT_FS, HSH_UNKNOWN_CODE, HSH_UNKNOWN_FAULT_FS, METHOD_DISCOVER, METHOD_EXECUTE, MONDRIAN_NAMESPACE, MSM_UNKNOWN_CODE, MSM_UNKNOWN_FAULT_FS, MUST_UNDERSTAND_FAULT_FC, NS_SOAP_ENC_1_1, NS_SOAP_ENC_1_2, NS_SOAP_ENV_1_1, NS_SOAP_ENV_1_2, NS_SQL, NS_XMLA, NS_XMLA_EMPTY, NS_XMLA_EX, NS_XMLA_MDDATASET, NS_XMLA_ROWSET, NS_XSD, NS_XSI, SERVER_FAULT_FC, SOAP_MUST_UNDERSTAND_ATTR, SOAP_PREFIX, UNKNOWN_ERROR_CODE, UNKNOWN_ERROR_FAULT_FS, USM_DOM_FACTORY_CODE, USM_DOM_FACTORY_FAULT_FS, USM_DOM_PARSE_CODE, USM_DOM_PARSE_FAULT_FS, USM_DOM_PARSE_IO_CODE, USM_DOM_PARSE_IO_FAULT_FS, USM_REQUEST_INPUT_CODE, USM_REQUEST_INPUT_FAULT_FS, USM_REQUEST_STATE_CODE, USM_REQUEST_STATE_FAULT_FS, USM_UNKNOWN_CODE, USM_UNKNOWN_FAULT_FS, VERSION_MISSMATCH_FAULT_FC, XMLA_BEGIN_SESSION, XMLA_END_SESSION, XMLA_SESSION, XMLA_SESSION_ID
 
Constructor Summary
DefaultXmlaServlet()
           
 
Method Summary
protected  String generateSessionId(Map<String,Object> context)
           
protected  DocumentBuilderFactory getDocumentBuilderFactory()
           
protected  String getSessionId(Element e, Map<String,Object> context)
           
protected  void handleFault(HttpServletResponse response, byte[][] responseSoapParts, XmlaServlet.Phase phase, Throwable t)
          This produces a SOAP 1.1 version Fault element - not a 1.2 version.
protected  void handleSoapBody(HttpServletResponse response, Element[] requestSoapParts, byte[][] responseSoapParts, Map<String,Object> context)
          Implement to handle XML/A request.
protected  void handleSoapHeader(HttpServletResponse response, Element[] requestSoapParts, byte[][] responseSoapParts, Map<String,Object> context)
          See if there is a "mustUnderstand" header element.
 void init(ServletConfig servletConfig)
          Initializes servlet and XML/A handler.
protected  void marshallSoapMessage(HttpServletResponse response, byte[][] responseSoapParts)
          Implement to privode application specified SOAP marshalling algorithm.
protected  void unmarshallSoapMessage(HttpServletRequest request, Element[] requestSoapParts)
          Implement to provide application specified SOAP unmarshalling algorithm.
 
Methods inherited from class mondrian.xmla.XmlaServlet
addCallback, addToDataSources, doPost, getBooleanInitParameter, getCallbacks, getParameter, getXmlaHandler, initCallbacks, initCharEncodingHandler, makeCatalogLocator, makeDataSources, parseDataSources, parseDataSourcesUrl, readDataSourcesContent
 
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPut, doTrace, getLastModified, service, service
 
Methods inherited from class javax.servlet.GenericServlet
destroy, getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

nl

protected static final String nl
Constructor Detail

DefaultXmlaServlet

public DefaultXmlaServlet()
Method Detail

init

public void init(ServletConfig servletConfig)
          throws ServletException
Description copied from class: XmlaServlet
Initializes servlet and XML/A handler.

Specified by:
init in interface Servlet
Overrides:
init in class XmlaServlet
Throws:
ServletException

getDocumentBuilderFactory

protected DocumentBuilderFactory getDocumentBuilderFactory()

unmarshallSoapMessage

protected void unmarshallSoapMessage(HttpServletRequest request,
                                     Element[] requestSoapParts)
                              throws XmlaException
Description copied from class: XmlaServlet
Implement to provide application specified SOAP unmarshalling algorithm.

Specified by:
unmarshallSoapMessage in class XmlaServlet
Throws:
XmlaException

handleSoapHeader

protected void handleSoapHeader(HttpServletResponse response,
                                Element[] requestSoapParts,
                                byte[][] responseSoapParts,
                                Map<String,Object> context)
                         throws XmlaException
See if there is a "mustUnderstand" header element. If there is a BeginSession element, then generate a session id and add to context Map.

Excel 2000 and Excel XP generate both a BeginSession, Session and EndSession mustUnderstand==1 in the "urn:schemas-microsoft-com:xml-analysis" namespace Header elements and a NamespaceCompatibility mustUnderstand==0 in the "http://schemas.microsoft.com/analysisservices/2003/xmla" namespace. Here we handle only the session Header elements

Specified by:
handleSoapHeader in class XmlaServlet
Throws:
XmlaException

generateSessionId

protected String generateSessionId(Map<String,Object> context)

getSessionId

protected String getSessionId(Element e,
                              Map<String,Object> context)
                       throws Exception
Throws:
Exception

handleSoapBody

protected void handleSoapBody(HttpServletResponse response,
                              Element[] requestSoapParts,
                              byte[][] responseSoapParts,
                              Map<String,Object> context)
                       throws XmlaException
Description copied from class: XmlaServlet
Implement to handle XML/A request.

Specified by:
handleSoapBody in class XmlaServlet
Throws:
XmlaException

marshallSoapMessage

protected void marshallSoapMessage(HttpServletResponse response,
                                   byte[][] responseSoapParts)
                            throws XmlaException
Description copied from class: XmlaServlet
Implement to privode application specified SOAP marshalling algorithm.

Specified by:
marshallSoapMessage in class XmlaServlet
Throws:
XmlaException

handleFault

protected void handleFault(HttpServletResponse response,
                           byte[][] responseSoapParts,
                           XmlaServlet.Phase phase,
                           Throwable t)
This produces a SOAP 1.1 version Fault element - not a 1.2 version.

Specified by:
handleFault in class XmlaServlet

SourceForge.net_Logo