Hi,
My Java-Apache Soap client is trying to connect to Microsoft OLAP 
Server 2000(Provider) using their XML for Analysis 
(<http://msdn.microsoft.com/library/default.asp?>
URL=/library/techart/xmlanalysis.htm).

The Provider is returning the following fault code...

////////////////////////////////
Generated fault:
Fault Code = XMLAnalysisError.88BA0500
Fault String = Unable to process the request, because the 
DataSourceInfo property was missing or not correctly specifie
d.
/////////////////

The required Input (as per Microsoft is)....

//////////////REQUEST////////////////
<SOAP-ENV:Envelope xmlns:SOAP-
ENV="<http://schemas.xmlsoap.org/soap/envelope/>" 
xmlns:xsi="<http://www.w3.org/2001/XMLSchema-instance>" 
xmlns:xsd="<http://www.w3.org/2001/XMLSchema>">
<SOAP-ENV:Body>
<Discover xmlns="urn:schemas-microsoft-com:xml-analysis" SOAP-
ENV:encodingStyle="<http://schemas.xmlsoap.org/soap/encoding/>">
<RequestType>MDSCHEMA_CUBES</RequestType> 
<Restrictions>
<RestrictionList>
<CATALOG_NAME>FoodMart 2000</CATALOG_NAME> 
</RestrictionList>
</Restrictions>
<Properties>
<PropertyList>
<DataSourceInfo>Provider=MSOLAP;Data 
Source=s152969</DataSourceInfo> 
<Format>Tabular</Format> 
<Catalog>FoodMart 2000</Catalog> 
</PropertyList>
</Properties>
</Discover>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
///////////////// End Request ///////////


The following is my java client code.........

/////////////JAVA client code ////////////
URL url = new URL 
("<http://localhost/xmla/msxisapi.dll>");

SOAPMappingRegistry smr = new SOAPMappingRegistry ();
StringDeserializer sd = new StringDeserializer ();
smr.mapTypes (Constants.NS_URI_SOAP_ENC, new QName 
("", "Result"), null, null, sd);

// create the transport and set parameters
SOAPHTTPConnection st = new SOAPHTTPConnection();

// build the call.
Call call = new Call ();
call.setSOAPTransport(st);
call.setSOAPMappingRegistry (smr);

call.setTargetObjectURI ("urn:schemas-microsoft-
com:xml-analysis");
call.setMethodName("Discover");
call.setEncodingStyleURI 
("<http://schemas.xmlsoap.org/soap/encoding/>");

Vector params = new Vector();
params.addElement(new Parameter("RequestType", 
String.class, "MDSCHEMA_CUBES", null));
params.addElement(new Parameter("Restrictions", 
String.class, "<RestrictionList><CATALOG_NAME>FoodMart 
2000</CATALOG_NAME></RestrictionList>", null ));
params.addElement(new Parameter("Properties", 
String.class, "<PropertyList><DataSourceInfo>Data 
Source=s152969;Provider=msolap;</DataSourceInfo><Catalog>Foodmart 
2000</Catalog></PropertyList>", null ));

call.setParams(params);

Response resp = null;
try {
resp = call.invoke (url, "urn:schemas-microsoft-
com:xml-analysis:Discover");
}
catch (SOAPException e) {
System.err.println("Caught SOAPException (" + 
e.getFaultCode () + "): " + e.getMessage ());
return;
}
//////////////////////End Client Code ////////////////

Any help from gurus on this interoperability...?

Thanks in advance,
Vasu

Reply via email to