Try puttin this line in your Stub's createCall method. import org.apache.axis.AxisEngine; call.setOption(AxisEngine.PROP_DOMULTIREFS, new Boolean(false)); Sylvain.
-----Original Message----- From: Heitzso [mailto:[EMAIL PROTECTED]] Sent: Tuesday, June 04, 2002 12:24 PM To: [EMAIL PROTECTED] Subject: href, mozilla soap, and custom serializers HELP! Ouch. HELP HELP (please ... and thanks ...) Mozilla 1.0rc3 SOAP doesn't handle hrefs. I recoded a java bean (returned from web service) to only contain simple data types and arrays of simple data types but axis still uses a href even though nothing is gained by it. I'm trying _hard_ to code a custom serializer for my bean to avoid the href but my serializer/axis setup breaks with a null pointer exceptions. I'm following all of the doc and the encoder sample app, but it's still a nogo. null pointer coming out of (beta2): ServiceDesc.java 688 (647, 628, 507, 488). Line 688 in ServiceDesc.java is: operation.setReturnType(tm.getTypeQName(method.getReturnType())); My wsdd element that's triggering the null pointer: <typeMapping xmlns:ns="urn:ferrett" qname="ns:SelectionNodeSet" type="java:org.thedataweb.service.ferrett.datamodel.SelectionNodeSet" serializer="org.thedataweb.service.ferrett.datamodel.SelectionNodeSetSeriali zerFactory" deserializer="org.thedataweb.service.ferrett.datamodel.SelectionNodeSetDeser ializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> Null pointer trigger occurs when I go to AxisServlet to just list the exposed classes/methods. My ser/deser factories follow the sample code exactly. The ser code: public class SelectionNodeSetSerializer implements Serializer { public static final String LENGTH = "length"; public static final String NAMES = "names"; public static final String IDS = "ids"; public static final String DESCRIPTIONS = "descriptions"; public static final String TERMINALS = "terminals"; public static final QName myTypeQName = new QName("urn:ferrett", "SelectionNodeSet"); public SelectionNodeSetSerializer() {} public void serialize(QName name, Attributes attributes, Object value, SerializationContext context) throws IOException { if (! (value instanceof SelectionNodeSet)) { throw new IOException(.....); } SelectionNodeSet selectionNodeSet = (SelectionNodeSet) value; context.startElement(name, attributes); context.serialize(new QName("urn:ferrett", LENGTH), null, new Integer(selectionNodeSet.length), Integer.class); //ArraySerializer arraySerializer = new ArraySerializer(); //arraySerializer.serialize(new QName("", IDS), null, selectionNodeSet.ids, context); //arraySerializer.serialize(new QName("", NAMES), null, selectionNodeSet.names, context); //arraySerializer.serialize(new QName("", DESCRIPTIONS), null, selectionNodeSet.descriptions, context); //arraySerializer.serialize(new QName("", TERMINALS), null, selectionNodeSet.terminals, context); context.endElement(); } public String getMechanismType() { return Constants.AXIS_SAX; } public boolean writeSchema(Types types) throws Exception { return false; } ========= Note that I've commented out the array serializers while I sort out the simplest piece -- serializing a single integer. THANKS Heitzso This message may contain privileged and/or confidential information. If you have received this e-mail in error or are not the intended recipient, you may not use, copy, disseminate or distribute it; do not open any attachments, delete it immediately from your system and notify the sender promptly by e-mail that you have done so. Thank you.