Hi all axis-users, I wanted to get on the client side a bean created on the server side.
The bean is described as follow :
public class XMLRepresentation implements java.io.Serializable {
private byte[] xmlRepresentation_;
public XMLRepresentation() { }
public XMLRepresentation(Object representation) {
createXMLRepresentation(representation);//fill the byte[] with a representation.toString().getBytes();
}
public byte[] getXMLRepresentation() { return (byte[])xmlRepresentation_.clone(); } }
In order to get it on the client side, I created a service corresponding to the method :
public XMLRepresentation createXmlRepresentation()
throws ServiceException {
XMLRepresentation rep = new XMLRepresentation(getRepresentation());
System.out.println(rep);
return rep;
}
my deploy.wsdd file contains the line :
<beanMapping qname="myNS:XMLRepresentation" xmlns:myNS="urn:ConfiguratorManager" languageSpecificType="java:XMLRepresentation"/>
On the client side, I do :
QName qn = new QName("urn:ConfiguratorManager", "XMLRepresentation" );
call.registerTypeMapping(XMLRepresentation.class, qn,
new org.apache.axis.encoding.ser.BeanSerializerFactory(XMLRepresentation.class, qn), new org.apache.axis.encoding.ser.BeanDeserializerFactory(XMLRepresentation.class, qn));
call.setOperationName(new QName("http://soapinterop.org/", "createXmlRepresentation"));
XMLRepresentation rep = (XMLRepresentation)conveyor.invoke(new Object[] {});
EveryThing seems to work well except the fact that the byte array is null!!
I know that, on the server side, the byte array is conformed.
It seems that the byte array isn't serialized from the server to the client.
I hope that I've clearly exposed my problem and that somebody will help me.
Thank by advance Karim