public abstract class DefaultXmlaServlet extends XmlaServlet
XmlaServlet.Phase| Modifier and Type | Field and Description | 
|---|---|
protected static String | 
nl  | 
charEncoding, LOGGER, PARAM_CALLBACKS, PARAM_CHAR_ENCODING, PARAM_DATASOURCES_CONFIG, PARAM_OPTIONAL_DATASOURCE_CONFIG, xmlaHandlerCHH_AUTHORIZATION_CODE, CHH_AUTHORIZATION_FAULT_FS, CHH_CODE, CHH_FAULT_FS, CLIENT_FAULT_FC, CONTEXT_MIME_TYPE, CONTEXT_ROLE_NAME, CONTEXT_XMLA_PASSWORD, CONTEXT_XMLA_SESSION_ID, CONTEXT_XMLA_SESSION_STATE, CONTEXT_XMLA_SESSION_STATE_BEGIN, CONTEXT_XMLA_SESSION_STATE_END, CONTEXT_XMLA_SESSION_STATE_WITHIN, CONTEXT_XMLA_USERNAME, 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_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_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, 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, 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_SOAP_SECEXT, 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_SECURITY, XMLA_SESSION, XMLA_SESSION_ID| Constructor and Description | 
|---|
DefaultXmlaServlet()  | 
| Modifier and Type | Method and Description | 
|---|---|
protected String | 
generateSessionId(Map<String,Object> context)  | 
protected static DocumentBuilderFactory | 
getDocumentBuilderFactory()  | 
protected void | 
handleFault(javax.servlet.http.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(javax.servlet.http.HttpServletResponse response,
              Element[] requestSoapParts,
              byte[][] responseSoapParts,
              Map<String,Object> context)
Implement to handle XML/A request. 
 | 
protected void | 
handleSoapHeader(javax.servlet.http.HttpServletResponse response,
                Element[] requestSoapParts,
                byte[][] responseSoapParts,
                Map<String,Object> context)
Implement to handle application specified SOAP header. 
 | 
void | 
init(javax.servlet.ServletConfig servletConfig)
Initializes servlet and XML/A handler. 
 | 
protected void | 
logXmlaRequest(Element envElem)  | 
protected void | 
marshallSoapMessage(javax.servlet.http.HttpServletResponse response,
                   byte[][] responseSoapParts,
                   Enumeration.ResponseMimeType responseMimeType)
Implement to provide application specified SOAP marshalling algorithm. 
 | 
protected void | 
unmarshallSoapMessage(javax.servlet.http.HttpServletRequest request,
                     Element[] requestSoapParts)
Implement to provide application specified SOAP unmarshalling algorithm. 
 | 
addCallback, createConnectionFactory, doPost, getBooleanInitParameter, getCallbacks, getParameter, getXmlaHandler, initCallbacks, initCharEncodingHandlerdoDelete, doGet, doHead, doOptions, doPut, doTrace, getLastModified, service, serviceprotected static final String nl
public void init(javax.servlet.ServletConfig servletConfig)
          throws javax.servlet.ServletException
XmlaServletinit in interface javax.servlet.Servletinit in class XmlaServletjavax.servlet.ServletExceptionprotected static DocumentBuilderFactory getDocumentBuilderFactory()
protected void unmarshallSoapMessage(javax.servlet.http.HttpServletRequest request,
                         Element[] requestSoapParts)
                              throws XmlaException
XmlaServletunmarshallSoapMessage in class XmlaServletXmlaExceptionprotected void logXmlaRequest(Element envElem)
protected void handleSoapHeader(javax.servlet.http.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.
We also handle the Security element.
handleSoapHeader in class XmlaServletXmlaExceptionprotected void handleSoapBody(javax.servlet.http.HttpServletResponse response,
                  Element[] requestSoapParts,
                  byte[][] responseSoapParts,
                  Map<String,Object> context)
                       throws XmlaException
XmlaServlethandleSoapBody in class XmlaServletXmlaExceptionprotected void marshallSoapMessage(javax.servlet.http.HttpServletResponse response,
                       byte[][] responseSoapParts,
                       Enumeration.ResponseMimeType responseMimeType)
                            throws XmlaException
XmlaServletmarshallSoapMessage in class XmlaServletXmlaExceptionprotected void handleFault(javax.servlet.http.HttpServletResponse response,
               byte[][] responseSoapParts,
               XmlaServlet.Phase phase,
               Throwable t)
handleFault in class XmlaServlet