You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-user@ws.apache.org by "Adam.Leggett" <Ad...@upco.co.uk> on 2001/06/05 11:14:00 UTC

Arrays with MS Hi-level client

I am using Apache2.1, MSSoap2.0 Hi-level and GLUE for my WSDL generation.

Trying interop between Apache Service and MS Hi-level Client.

Using a series of 'echo' methods to test ie:

public class EchoTestService {

public EchoTestService() {
	super();
}
public float echoFloat(float f)
{
	return f;
}
public float[] echoFloatArray(float[] ff)
{
	return ff;
}
public int echoInteger(int i)
{
	return i;
}
public int[] echoIntegerArray(int[] ii)
{
	return ii;
}
public String echoString(String str)
{
	return str;
}
public String[] echoStringArray(String[] ss)
{
	return ss;
}
}

Have no problem with using the functions that do not require or return array
type.
However, when calling the array functions i get a strange error. No
SOAP-Fault is reported by the client but it appears that it believes the
return type to be an array of complex type and cannot map. 
[Please note i'm a Java developer not a VB guru!]

Do I need to include something in my deploy desciptor to accomodate this.
DD.xml:

<isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment"
             id="urn:interop">
  <isd:provider type="java"
                scope="Application"
                methods="echoInteger echoString echoFloat echoIntegerArray
echoFloatArray echoStringArray">
    <isd:java class="uk.co.upco.soap.training.EchoTestService"
static="false"/>
  </isd:provider>

 
<isd:faultListener>org.apache.soap.server.DOMFaultListener</isd:faultListene
r>

  <isd:mappings>
    
    <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
             xmlns:x="" qname="x:inputInteger"
 
xml2JavaClassName="org.apache.soap.encoding.soapenc.IntDeserializer"/>
    <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
             xmlns:x="" qname="x:inputFloat"
 
xml2JavaClassName="org.apache.soap.encoding.soapenc.FloatDeserializer"/>
    <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
             xmlns:x="" qname="x:inputString"
 
xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/>
    <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
             xmlns:x="" qname="x:inputIntegerArray"
 
xml2JavaClassName="org.apache.soap.encoding.soapenc.ArraySerializer"/>
    <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
             xmlns:x="" qname="x:inputFloatArray"
 
xml2JavaClassName="org.apache.soap.encoding.soapenc.ArraySerializer"/>
    <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
             xmlns:x="" qname="x:inputStringArray"
 
xml2JavaClassName="org.apache.soap.encoding.soapenc.ArraySerializer"/>
    
    <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
             xmlns:x="" qname="x:string"
 
xml2JavaClassName="org.apache.soap.encoding.soapenc.StringDeserializer"/>
             
                                  
  </isd:mappings>    
</isd:service>

Soap request and response for array function:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAPSDK1:echoFloatArray xmlns:SOAPSDK1="urn:interop">
<inputFloatArray xmlns:SOAPSDK2="http://www.w3.org/1999/XMLSchema"
xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/"
SOAPSDK3:arrayType="SOAPSDK2:float[3]"
xmlns:SOAPSDK4="http://www.w3.org/1999/XMLSchema-instance"
SOAPSDK4:type="SOAPSDK3:Array">
<SOAPSDK3:float>2.5</SOAPSDK3:float>
<SOAPSDK3:float>3.4</SOAPSDK3:float>
<SOAPSDK3:float>4.2</SOAPSDK3:float>
</inputFloatArray>
</SOAPSDK1:echoFloatArray>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<ns1:echoFloatArrayResponse xmlns:ns1="urn:interop"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <return
xmlns:ns2="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:Array"
ns2:arrayType="xsd:float[3]">
<item xsi:type="xsd:float">2.5</item>
<item xsi:type="xsd:float">3.4</item> 
<item xsi:type="xsd:float">4.2</item>
 </return> 
</ns1:echoFloatArrayResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Thanks in advance

Adam Leggett
UPCO
Direct Line: 0113 20 10 631
Fax: 0113 20 10 666
<http://www.upco.co.uk>
The contents of this email are intended for the named addressees and may
contain confidential and / or privileged material. If received in error,
please contact UPCO on +44 (0)113 20 10 600 and then delete the entire email
from your system. Unauthorised review, distribution, disclosure or other use
of this information could constitute a breach of confidence. Your
co-operation in this matter is greatly appreciated.



---------------------------------------------------------------------
To unsubscribe, e-mail: soap-user-unsubscribe@xml.apache.org
For additional commands, email: soap-user-help@xml.apache.org