axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Konstantin Kasatkin (JIRA)" <axis-...@ws.apache.org>
Subject [jira] Created: (AXIS-1904) CLONE -Unnecessary empty-valued attribute "xmlns" in Envelope parameter values
Date Wed, 30 Mar 2005 06:38:21 GMT
CLONE -Unnecessary empty-valued attribute "xmlns" in Envelope parameter values
------------------------------------------------------------------------------

         Key: AXIS-1904
         URL: http://issues.apache.org/jira/browse/AXIS-1904
     Project: Axis
        Type: Bug
  Components: Serialization/Deserialization  
    Versions: 1.2    
 Environment: Windows 2000 Pro SP4 JDK 1.4.2-05
    Reporter: Konstantin Kasatkin
    Priority: Blocker


There is a problem of interaction Axis WebService Client (as console application) with Microsoft
WebService Server (as .Net application)

Here WEBService method description is from MS side:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SetParameterValues xmlns="http://tempuri.org/">
      <strUser>string</strUser>
      <strBusinessSystem>string</strBusinessSystem>
      <strParameter>string</strParameter>
      <strValues>
        <string>string</string>
        <string>string</string>
      </strValues>
    </SetParameterValues>
  </soap:Body>
</soap:Envelope>

Here real Axis SOAP envelope is from Java applicaton:

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <SetParameterValues xmlns="http://tempuri.org/">
        <strUser>test</strUser>
        <strBusinessSystem>SYS</strBusinessSystem>
        <strParameter>100</strParameter>
        <strValues>
           <string xmlns="">123</string>
           <string xmlns="">234</string>
        </strValues>
    </SetParameterValues>
   </soapenv:Body>
</soapenv:Envelope>

As you can see in section <strValues> all of inner elements contain attribute xmlns="".
This notation does not work in MS (It is very strange, but I don't know why).
MS ignores all such lines and returns empty collection.
If I'm removing empty "xmlns" attributes all works fine.

I've already found the point where you can place fix code.

CLASS: org.apache.axis.encoding.SerializationContext
CODE:
                if (!(map.getNamespaceURI().equals(Constants.NS_URI_XMLNS) && map.getPrefix().equals("xmlns"))
&&
                    !(map.getNamespaceURI().equals(Constants.NS_URI_XML) && map.getPrefix().equals("xml")))

It need to be added one more check in the condition. Here modified condition

                if (!(map.getNamespaceURI().equals(Constants.NS_URI_XMLNS) && map.getPrefix().equals("xmlns"))
&&
                    !(map.getNamespaceURI().equals(Constants.NS_URI_XML) && map.getPrefix().equals("xml"))
&&
                    !map.getNamespaceURI().equals(""))

Maybe I didn't take into account something, but after this change all have worked fine.









-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


Mime
View raw message