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