[ 
https://issues.apache.org/jira/browse/AXISCPP-1026?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12479631
 ] 

Wayne Johnson commented on AXISCPP-1026:
----------------------------------------

OK, forgive me if this is a little pedantic.  Just want to make sure I include 
enough info...

With the current (516429) version from SVN, I'm getting the error back:
Exception: org.xml.sax.SAXException: SimpleDeserializer encountered a child 
element, which is NOT expected, in something it was trying to deserialize.

The SOAP generated was:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
  <SOAP-ENV:Body>
    <ns1:saveModifiedGroup xmlns:ns1="urn:SWS">
      <SWSToken xsi:type="ns1:SWSToken">
        <token 
xsi:type="xsd:string">38FA16EDEA6A30B86C0B5A48D7D00920D7E1BA0E</token>
      </SWSToken>
      <SWSGroup xsi:type="ns1:SWSGroup">
        <DN xsi:nil="true"/>
        <description xsi:type="xsd:string">TestGroup1</description>
        <gid xsi:type="xsd:int">999</gid>
        <members enc:arrayType="xsd:string[2]" 
xmlns:enc="http://www.w3.org/2001/06/soap-encoding";>
          <members>xxx</members>
          <members>yyy</members>
        </members>
        <name xsi:type="xsd:string">TestGroup1</name>
        <properties enc:arrayType="ns3:properties[2]" 
xmlns:enc="http://www.w3.org/2001/06/soap-encoding";>
          <SWSProperty>
            <property xsi:type="xsd:string">color</property>
            <value xsi:type="xsd:string">red</value>
          </SWSProperty>
          <SWSProperty>
            <property xsi:type="xsd:string">size</property>
            <value xsi:type="xsd:string">large</value>
          </SWSProperty>
        </properties>
        <rights enc:arrayType="ns4:rights[2]" 
xmlns:enc="http://www.w3.org/2001/06/soap-encoding";>
          <SWSRight>
            <right xsi:type="xsd:string">expression</right>
          </SWSRight>
          <SWSRight>
            <right xsi:type="xsd:string">speech</right>
          </SWSRight>
        </rights>
        <toBeDeleted xsi:type="xsd:boolean">false</toBeDeleted>
      </SWSGroup>
    </ns1:saveModifiedGroup>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

I then replaced the code as (I think) you suggested:
Index: c/src/common/Param.cpp
===================================================================
--- c/src/common/Param.cpp      (revision 516429)
+++ c/src/common/Param.cpp      (working copy)
@@ -104,7 +104,7 @@
                 else
                 {
                   pSZ.serialize (" xmlns:enc", NULL);
-                  pSZ.serialize 
("=\"http://www.w3.org/2001/06/soap-encoding\"";, NULL);
+                  pSZ.serialize 
("=\"http://www.w3.org/2001/06/soap-encoding/Array\"; ", NULL);

                   if (m_Value.pArray->m_type == USER_TYPE &&
                     !m_Value.pArray->m_URI.empty())

In effect, adding /Array to the URL?

After building and deploying, I still get the same error:
Exception: org.xml.sax.SAXException: SimpleDeserializer encountered a child 
element, which is NOT expected, in something it was trying to deserialize.

The soap was:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
  <SOAP-ENV:Body>
    <ns1:saveModifiedGroup xmlns:ns1="urn:SWS">
      <SWSToken xsi:type="ns1:SWSToken">
        <token 
xsi:type="xsd:string">C11D02D93CC71869C1EA81BC1CE9DE969A4B3980</token>
      </SWSToken>
      <SWSGroup xsi:type="ns1:SWSGroup">
        <DN xsi:nil="true"/>
        <description xsi:type="xsd:string">TestGroup1</description>
        <gid xsi:type="xsd:int">999</gid>
        <members enc:arrayType="xsd:string[2]" 
xmlns:enc="http://www.w3.org/2001/06/soap-encoding/Array";>
          <members>xxx</members>
          <members>yyy</members>
        </members>
        <name xsi:type="xsd:string">TestGroup1</name>
        <properties enc:arrayType="ns3:properties[2]" 
xmlns:enc="http://www.w3.org/2001/06/soap-encoding/Array";>
          <SWSProperty>
            <property xsi:type="xsd:string">color</property>
            <value xsi:type="xsd:string">red</value>
          </SWSProperty>
          <SWSProperty>
            <property xsi:type="xsd:string">size</property>
            <value xsi:type="xsd:string">large</value>
          </SWSProperty>
        </properties>
        <rights enc:arrayType="ns4:rights[2]" 
xmlns:enc="http://www.w3.org/2001/06/soap-encoding/Array";>
          <SWSRight>
            <right xsi:type="xsd:string">expression</right>
          </SWSRight>
          <SWSRight>
            <right xsi:type="xsd:string">speech</right>
          </SWSRight>
        </rights>
        <toBeDeleted xsi:type="xsd:boolean">false</toBeDeleted>
      </SWSGroup>
    </ns1:saveModifiedGroup>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Is it complaining about a missing xsi:type="xsd:Array"?  I'll try adding that 
to see.

> Seversal issues in generating soap from complex arrays
> ------------------------------------------------------
>
>                 Key: AXISCPP-1026
>                 URL: https://issues.apache.org/jira/browse/AXISCPP-1026
>             Project: Axis-C++
>          Issue Type: Bug
>          Components: SOAP
>    Affects Versions:  1.6 Beta
>         Environment: Windows VC++ and Axis 1.4 (Java) server
>            Reporter: Wayne Johnson
>            Priority: Critical
>             Fix For: current (nightly)
>
>         Attachments: AxisCPP-1026.patch, SWS.wsdl
>
>
> (this is a weeks worth of changes from memory, so I might have missed 
> something).
> 1) does not generate xsi:nil when needed.
> 2) Missing enc:arrayType=
> 3) Generates xmlns:nsX="".  This causes Xerces to barf with 
> org.xml.sax.SAXParseException: The value of the attribute "prefix="xm
> lns",localpart="ns3",rawname="xmlns:ns3"" is invalid. Prefixed namespace 
> binding s may not be empty.
> 4) Generated complex object serializer uses URI of NULL, causes crash in 
> ArrayBean.cpp

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to