From 75f55457eccadde092e7a3f10c6479a7ef6edde2 Mon Sep 17 00:00:00 2001 From: Luc Boudreau Date: Fri, 24 Feb 2012 01:08:10 +0000 Subject: [PATCH] A bit of code to add the session ID into the server infos when parsing the SOAP headers. git-svn-id: https://olap4j.svn.sourceforge.net/svnroot/olap4j/trunk@508 c6a108a4-781c-0410-a6c6-c2d559e19af0 --- src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java b/src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java index 9e8efaa..a099898 100644 --- a/src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java +++ b/src/org/olap4j/driver/xmla/XmlaOlap4jConnection.java @@ -862,6 +862,8 @@ Element executeMetadataRequest(String request) throws OlapException { } assert envelope.getLocalName().equals("Envelope"); assert envelope.getNamespaceURI().equals(SOAP_NS); + Element header = + findChild(envelope, SOAP_NS, "Header"); Element body = findChild(envelope, SOAP_NS, "Body"); Element fault = @@ -889,6 +891,16 @@ Element executeMetadataRequest(String request) throws OlapException { + "Request was:\n" + request); } + Element session = + findChild(header, XMLA_NS, "Session"); + if (session != null) { + String sessionId = + session.getAttribute("SessionId"); + if ("".equals(sessionId)) { + sessionId = null; + } + serverInfos.setSessionId(sessionId); + } Element discoverResponse = findChild(body, XMLA_NS, "DiscoverResponse"); Element returnElement =