Hi Deepal,

[jira] Created: (AXIS2-747) Missing namespace on subelement

Missing namespace on subelement
--------------------------------

         Key: AXIS2-747
         URL: http://issues.apache.org/jira/browse/AXIS2-747
     Project: Apache Axis 2.0 (Axis2)
        Type: Bug

  Components: om  
    Versions: 1.0    
 Environment: Windows 2K3, JDK 1.5, AXIS2 1.0 and Eclipse 3.1 with
tomcat plugin
    Reporter: Qi An
    Priority: Critical


Thanks for your help!

-Dave

-----Original Message-----
From: Deepal Jayasinghe [mailto:[EMAIL PROTECTED] 
Sent: Monday, May 15, 2006 10:13 AM
To: [email protected]
Subject: Re: [Axis2 1.0] Missing namespace on subelement

pls create a JIRA

Dave MacLean wrote:

>Hello everyone,
>We're running into a bit of trouble since we moved from axis2 0.95 to
>1.0.
>
>The below all worked fine on 0.95:
>
>The complex type in question is defined in the wsdl as:
>
>
><s:complexType name="Credential">
>       <s:sequence/>
></s:complexType>
>
><s:complexType name="EnterpriseCredential">
><s:complexContent>
>       <s:extension base="s0:Credential">
>               <s:sequence/>
>               <s:attribute name="Login" type="s:string"
>use="required"/>
>               <s:attribute name="Password" type="s:string"
>use="optional"/>
>               <s:attribute name="Locale" type="s:string"
>use="optional"/>
>               <s:attribute name="TimeZone" type="s:string"
>use="optional"/>
>               <s:attribute name="Domain" type="s:string"
>use="optional"/>
>               <s:attribute name="AuthType" type="s:string"
>use="optional"/>
>       </s:extension>
></s:complexContent>
></s:complexType>
>
>
>In the provider's skeleton, we have the following:
>
>    public com.businessobjects.dsws.session.LoginResponseDocument
login(
>        com.businessobjects.dsws.session.LoginDocument param12)
>        throws
>com.businessobjects.dsws.session.SessionSkeleton.DSWSExceptionException
,
>RemoteException {
>               Login obj = param12.getLogin();
>               Credential cred = obj.getCredential();
>
>
>The problem is, on the getCredential() call, we actually get back an
>object of type Credential (base class) when the method was invoked with
>an enterprise credential.  So that further on, on the line:
>
>EnterpriseCredential enterpriseCredential = (EnterpriseCredential)
cred;
>
>We get a class cast exception.
>
>Tracing through a bit with the SOAPMonitor, we noticed that the xml
>envelope actually ends up looking like:
>
><?xml version='1.0' encoding='utf-8'?>
><soapenv:Envelope
>xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
><soapenv:Header />
><soapenv:Body>
><login xmlns="session.dsws.businessobjects.com">
><credential xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>Password="" Domain="vanyma01" xsi:type="ses:EnterpriseCredential"
>Login="administrator" />
></login>
></soapenv:Body>
></soapenv:Envelope>
>
>Where the namespace definition of "ses" is clearly missing.  If you
>trace through the deserialization code a bit, this is why the object
>comes back as the base class instead of the extended type.
>
>Once thing interesting one of our developer's noticed, is that if, on
>the consumer side, you add the lines:
>
>            XmlOptions op1 = new XmlOptions();
>            op1.setSaveNamespacesFirst();
>            m_credential =
>EnterpriseCredential.Factory.newInstance(op1);
>
>At the time you create the credential, it seems that *some of the time*
>this fixes the problem, so that the xml appears as:
>
><?xml version='1.0' encoding='utf-8'?>
><soapenv:Envelope
>xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
><soapenv:Header />
><soapenv:Body>
><login xmlns="session.dsws.businessobjects.com">
><credential xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>xmlns:ses="session.dsws.businessobjects.com" Password=""
>Domain="vanyma01" xsi:type="ses:EnterpriseCredential"
>Login="administrator" />
></login>
></soapenv:Body>
></soapenv:Envelope>
>
>But only some of the time.
>
>Is it possible there's a race condition here and that somehow the
>attribute list is getting overwritten, or are we doing something wrong?
>
>Thanks in advance,
>
>Dave
>
>
>  
>

-- 
Thanks,
Deepal
................................................................
~Future is Open~ 

Reply via email to