Hi all,
I have to create a web service with a lot of operations. On the
server side, I must use axis 1.4. On the client side I must use Axis
2-1.3.
For the server I have written an interface representing all
operations (multiple complex arguments, complex returns) and the
implementation of these interface and then generated the correspondant
WSDL. I used this WSDL for the client side in Axis 2. At execution the
client throw an exception of the type : org.apache.axis2.AxisFault:
org.apache.axis2.databinding.ADBException: Unexpected subelement
MyElement
I have generated and used with success a client made with Axis 1.4.
I have simplified the server interface begining with a method with no
argument returning a simple string until I encounter the same issue as
with the complete WS. This exception appears when the return object is
a complex one containing an array of values.
Here is the minimal sample generating the exception. Help is welcom :)
#### Server Side (Axis 1.4) - Generation of the WSDL ####
<target name="generateWSDL" depends="checkEnv">
<mkdir dir="${wsdl.dir}" />
<axis-java2wsdl classname="ext.awas.ws.AwasWS"
serviceelementname="awas" bindingName="awas" style="WRAPPED"
namespace="http://ws.awas.ext"
location="http://${java.rmi.server.hostname}/${wt.server.id}/servlet/service/awas"
output="${wsdl.file}">
<classpath refid="awas.classpath" />
<mapping namespace="http://ws.awas.ext" package="ext.awas.ws" />
</axis-java2wsdl>
</target>
#### Server Side (Axis 1.4) - WS Interface Class ####
package ext.awas.ws;
public interface AwasWS {
SimpleObject getUrsula();
}
#### Server Side (Axis 1.4) - Returned type ####
package ext.awas.ws;
public class SimpleObject {
private String name;
private String[] values;
public SimpleObject() {
name = "";
values = new String[0];
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setValues(String[] values) {
this.values = values;
}
public String[] getValues() {
return values;
}
}
#### Client Side (Axis 2-1.3) - Generation of the client part ####*
<taskdef name="codegen"
classname="org.apache.axis2.tool.ant.AntCodegenTask"
classpathref="axis.classpath"/>
<target name="default" depends="depends" description="--> description">
<codegen overwrite="yes"
wsdlfilename="${basedir}/wsdl/awas.wsdl" unpackclasses="true"
serverside="false" unwrap="yes"/>
</target>
#### Client Side (Axis 2-1.3) - WS call ####
try {
ConfigurationContext configContext =
ConfigurationContextFactory.createDefaultConfigurationContext();
AwasStub stub = new AwasStub(configContext,
"http://localhost:9090/servlet/service/awas");
SimpleObject ursula = stub.getUrsula(new GetUrsula());
System.out.println(ursula.getName());
ArrayOf_xsd_string values = ursula.getValues();
String[] item = values.getItem();
for (int i = 0; i < item.length; i++) {
System.out.println(item[i]);
}
} catch (Exception e) {
e.printStackTrace();
}
#### The Exception (exists only on the client side) ####
org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException:
Unexpected subelement values
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:417)
at ext.awas.ws.AwasStub.fromOM(AwasStub.java:431)
at ext.awas.ws.AwasStub.getUrsula(AwasStub.java:146)
at ext.airbus.axis2.auth.Axis2AuthTest.main(Axis2AuthTest.java:45)
Caused by: java.lang.Exception:
org.apache.axis2.databinding.ADBException: Unexpected subelement
values
at ext.awas.ws.SimpleObject$Factory.parse(SimpleObject.java:509)
at
ext.awas.ws.GetUrsulaResponse$Factory.parse(GetUrsulaResponse.java:377)
at ext.awas.ws.AwasStub.fromOM(AwasStub.java:428)
... 2 more
Caused by: org.apache.axis2.databinding.ADBException: Unexpected
subelement values
at ext.awas.ws.SimpleObject$Factory.parse(SimpleObject.java:467)
... 4 more
sincerely,
Richard Fagot
--
-------------------------------------------------------------------------------------
Richard Fagot Mail : [EMAIL PROTECTED]
Genigraph URL : http://www.genigraph.fr
Tertial II
216, route de Saint-Simon Tel : +33 (0)5 34 60 92 81
31100 Toulouse, France Fax : +33 (0)5 34 60 92 89
------------------------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]