DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16846>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16846

Error in deserialization

           Summary: Error in deserialization
           Product: Axis
           Version: 1.0
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Critical
          Priority: Other
         Component: Serialization/Deserialization
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


I have come across what I believe to be a bug in the DeserializationContextImpl 
object.

For background:
I've got a thin soap client that is hitting an XML/A service on a machine to 
get some OLAP information.  Right now I am just doing a basic query to get a 
list of data sources.

The request goes over fine and tcpmon shows everything is returned fine (and I 
have validated the returned XML) but Axis keeps blowing up with:
[java] org.xml.sax.SAXException: SimpleDeserializer encountered a child 
element, which is NOT expected, in something it was trying to deserialize.

It appears to blow up on the <TDP/><MDP/> tags.

Don't know why though since the XML is valid.  That is why I assume it is an 
Axis error.

If someone could get back to me as soon as possible that would be great.  I 
can't seem to find a way around this and I need it working in two days...

Thanks!


Here is the returned XML:
<?xml version="1.0"?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"; 
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>

<SOAP-ENV:Body>

<m:DiscoverResponse xmlns:m="urn:schemas-microsoft-com:xml-analysis">

<return SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; 
xsi:type="xsd:string" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>

<root xmlns="urn:schemas-microsoft-com:xml-analysis:rowset" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>

<xsd:schema xmlns="urn:schemas-microsoft-com:xml-analysis:rowset" 
targetNamespace="urn:schemas-microsoft-com:xml-analysis:rowset" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:sql="urn:schemas-microsoft-
com:xml-sql" elementFormDefault="qualified">

<xsd:element name="root">

<xsd:complexType>

<xsd:sequence minOccurs="0" maxOccurs="unbounded">

<xsd:element name="row" 
type="row"/></xsd:sequence></xsd:complexType></xsd:element>

<xsd:complexType name="row">

<xsd:choice maxOccurs="unbounded" minOccurs="0">

<xsd:element name="DataSourceName" type="xsd:string" 
sql:field="DataSourceName"/>

<xsd:element name="DataSourceDescription" type="xsd:string" 
sql:field="DataSourceDescription"/>

<xsd:element name="URL" type="xsd:string" sql:field="URL"/>

<xsd:element name="DataSourceInfo" type="xsd:string" 
sql:field="DataSourceInfo"/>

<xsd:element name="ProviderName" type="xsd:string" sql:field="ProviderName"/>

<xsd:element name="ProviderType" sql:field="ProviderType">

<xsd:complexType>

<xsd:sequence maxOccurs="unbounded" minOccurs="0">

<xsd:any processContents="lax" 
maxOccurs="unbounded"/></xsd:sequence></xsd:complexType></xsd:element>

<xsd:element name="AuthenticationMode" sql:type="xsd:string" 
sql:field="AuthenticationMode"/></xsd:choice></xsd:complexType></xsd:schema>

<row>

<DataSourceName>Local Analysis Server</DataSourceName>

<DataSourceDescription>Microsoft Analysis Server 2000 on local 
machine</DataSourceDescription>

<URL>http://localhost/xmla/msxisapi.dll</URL>

<DataSourceInfo>Provider=MSOLAP;Data Source=local</DataSourceInfo>

<ProviderName>Microsoft XML for Analysis</ProviderName>

<ProviderType><TDP/><MDP/><DMP/></ProviderType>

<AuthenticationMode>Unauthenticated</AuthenticationMode></row></root></return></
m:DiscoverResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>



Here is my code:
package com.symbol.pps.analysis.test;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.Constants;
import org.apache.axis.encoding.ser.BeanSerializerFactory;
import org.apache.axis.encoding.ser.BeanDeserializerFactory;
import javax.xml.namespace.QName;

public class TestClient {

        public static void main(String [] args) {
                try {
                        Service  service = new Service();
            Call     call    = (Call) service.createCall();

                        System.out.println("Adding Parameters");
                        call.addParameter("RequestType", 
                    org.apache.axis.Constants.XSD_STRING,
                    javax.xml.rpc.ParameterMode.IN);
                        call.addParameter("Properties", 
                    org.apache.axis.Constants.XSD_STRING,
                    javax.xml.rpc.ParameterMode.IN);
                        call.addParameter("Restrictions", 
                    org.apache.axis.Constants.XSD_STRING,
                    javax.xml.rpc.ParameterMode.IN);
                        call.addParameter("Result",
                                        org.apache.axis.Constants.XSD_STRING,
                                        javax.xml.rpc.ParameterMode.OUT);

        call.setReturnType(org.apache.axis.Constants.XSD_STRING); 

            call.setTargetEndpointAddress( 
                                new java.net.URL
("http://localhost:8080/xmla/msxisapi.dll";) 
                        );
                        call.setOperationName(
                                new QName("urn:schemas-microsoft-com:xml-
analysis","Discover")
                        );

                        System.out.println("Setting Properties");
                        call.setProperty(call.SOAPACTION_USE_PROPERTY, 
Boolean.TRUE);
                        call.setProperty(call.SOAPACTION_URI_PROPERTY, 
                                "urn:schemas-microsoft-com:xml-
analysis:Discover");
                        
                        System.out.println("Invoking");
                        // I think I have to write a custom deserializer to get 
this to work (I think)
            Object obj = call.invoke( new Object[] 
{ "DISCOVER_DATASOURCES", "", "" } );

            System.out.println("Sent msg', got '" + obj.toString() + "'");
                } 
                catch (Exception e) {
                        //e.printStackTrace();
                        System.err.println(e.toString());
                }
        }
}


And lastly here is a debug dump from Axis:
test.connection:
     [java] Adding Parameters
     [java] Setting Properties
     [java] Invoking
     [java] Enter: DeserializationContextImpl::startElement(http://schemas.xmlso
ap.org/soap/envelope/, Envelope)
     [java] Enter: DeserializationContextImpl::startElement(http://schemas.xmlso
ap.org/soap/envelope/, Body)
     [java] Enter: DeserializationContextImpl::startElement(urn:schemas-microsof
t-com:xml-analysis, DiscoverResponse)
     [java] Enter: DeserializationContextImpl::startElement(, return)
     [java] Enter: DeserializationContextImpl::startElement(urn:schemas-microsof
t-com:xml-analysis:rowset, root)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, schema)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, element)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, complexType)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, sequence)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, element)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, complexType)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, choice)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, element)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, element)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, element)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, element)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, element)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, element)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, complexType)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, sequence)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, any)
     [java] Enter: DeserializationContextImpl::startElement(http://www.w3.org/20
01/XMLSchema, element)
     [java] Enter: DeserializationContextImpl::startElement(urn:schemas-microsof
t-com:xml-analysis:rowset, row)
     [java] Enter: DeserializationContextImpl::startElement(urn:schemas-microsof
t-com:xml-analysis:rowset, DataSourceName)
     [java] Enter: DeserializationContextImpl::startElement(urn:schemas-microsof
t-com:xml-analysis:rowset, DataSourceDescription)
     [java] Enter: DeserializationContextImpl::startElement(urn:schemas-microsof
t-com:xml-analysis:rowset, URL)
     [java] Enter: DeserializationContextImpl::startElement(urn:schemas-microsof
t-com:xml-analysis:rowset, DataSourceInfo)
     [java] Enter: DeserializationContextImpl::startElement(urn:schemas-microsof
t-com:xml-analysis:rowset, ProviderName)
     [java] Enter: DeserializationContextImpl::startElement(urn:schemas-microsof
t-com:xml-analysis:rowset, ProviderType)
     [java] Enter: DeserializationContextImpl::startElement(urn:schemas-microsof
t-com:xml-analysis:rowset, TDP)
     [java] Feb 6, 2003 10:26:42 AM org.apache.axis.client.Call invoke
     [java] SEVERE: Exception:
     [java] Enter: DeserializationContextImpl::startElement(urn:schemas-microsof
t-com:xml-analysis:rowset, MDP)
     [java] org.xml.sax.SAXException: SimpleDeserializer encountered a child ele
ment, which is NOT expected, in something it was trying to deserialize.
     [java]     at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(
SimpleDeserializer.java:188)
     [java] Enter: DeserializationContextImpl::startElement(urn:schemas-microsof
t-com:xml-analysis:rowset, DMP)
     [java]     at org.apache.axis.encoding.DeserializationContextImpl.startElem
ent(DeserializationContextImpl.java:894)
     [java]     at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRec
order.java:200)
     [java]     at org.apache.axis.message.MessageElement.publishToHandler(Messa
geElement.java:684)
     [java] Enter: DeserializationContextImpl::startElement(urn:schemas-microsof
t-com:xml-analysis:rowset, AuthenticationMode)
     [java]     at org.apache.axis.message.RPCElement.deserialize(RPCElement.jav
a:241)
     [java]     at org.apache.axis.message.RPCElement.getParams(RPCElement.java:
265)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:1871)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:1777)
     [java] Enter: DeserializationContextImpl::startElement(urn:schemas-microsof
t-com:xml-analysis, DiscoverResponse)
     [java] Enter: DeserializationContextImpl::startElement(, return)
     [java]     at org.apache.axis.client.Call.invoke(Call.java:1315)
     [java]     at com.symbol.pps.analysis.test.TestClient.main(Unknown Source)
     [java] Enter: DeserializationContextImpl::startElement(urn:schemas-microsof
t-com:xml-analysis:rowset, root)
     [java] org.xml.sax.SAXException: SimpleDeserializer encountered a child ele
ment, which is NOT expected, in something it was trying to deserialize.

Reply via email to