Your attempt to send XML as a string parameter will not work. The XML in the string will be "escaped", e.g. the '<' will be converted to '<'.
A simple way to get the correct format is to create Java beans for the parameter data and map the class to the BeanSerializer. For example, class TRestrictionList { public String CATALOG_NAME; } class TRestrictions { public TRestrictionList RestrictionList; } class TPropertyList { public String DataSourceInfo; public String Format; public String Catalog; } class TProperties { public TPropertyList PropertyList; } ... BeanSerializer beanSer = new BeanSerializer(); smr.mapTypes(Constants.NS_URI_SOAP_ENC, // maybe leave out the namespace in QName? new QName("urn:schemas-microsoft-com:xml-analysis", "Restrictions"), TRestrictions.class, beanSer, beanSer); ... TRestrictions restrictions = new TRestrictions(); restrictions.RestrictionList.CATALOG_NAME = "FoodMart 2000"; params.addElement(new Parameter("Restrictions", Restrictions.class, restrictions, null)); Scott ----- Original Message ----- From: "Yalavarthi, Vasu" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, April 09, 2002 2:41 AM Subject: Connecting to MS OLAP Server using Java-Soap Client > 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 > > _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com