You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Bart Vanbrabant <ba...@zoeloelip.be> on 2006/05/03 17:15:41 UTC

Complex types as arguments

Hello,

We are developing an application which uses SOAP to communicate between
server and client. We are using the RPC providor and Axis 1.3.
All seems to work fine as long as we don't use any complex types in our
arguments. I reduced the webservice to this example:

// deployment
<service name="TestService" provider="java:RPC">
	<parameter name="className" value="Test"/>
      	<parameter name="allowedMethods" value="echo"/>
	<beanMapping qname="myNS:Accesspoint" xmlns:myNS="urn:Test"
languageSpecificType="java:Accesspoint"/>
</service>

// the wsdl part for the Accesspoint type:
<wsdl:types>
  <schema targetNamespace="urn:Test">
    <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
    <complexType name="Accesspoint">
      <sequence>
	<element name="macAddress" nillable="true" type="xsd:string"/>
	<element name="signalStrength" type="xsd:int"/>
	<element name="timestamp" nillable="true" type="xsd:dateTime"/>
      </sequence>
    </complexType>
  </schema>
</wsdl:types>

This is autogenerated but the wsdl file is used to generate client bindings.

// the Accesspoint class:
public class Accesspoint {
	private Calendar $timestamp;
	private String $mac;
	private int $signal;
	
	public final Calendar getTimestamp() {
		return $timestamp;
	}

    public final String getMacAddress() {
    	return $mac;
    }

    public int getSignalStrength() {
    	return $signal;
    }
}

// the webservice
public class Test {
	public Accesspoint echo (Accesspoint ap) {
		return ap;
	}
}

The members of the 'ap' argument are always (null, null, 0) when the
method is called. It seems like the call doesn't get deserialized properly.

Is there anything I'm doing wrong? I'm using the SimpleAxisServer but it
 doesn't work with Tomcat either.

thanks,

Bart


-- 
Bart Vanbrabant <ba...@zoeloelip.be>
PGP fingerprint: 093C BB84 17F6 3AA6 6D5E  FC4F 84E1 FED1 E426 64D1