Sylvan, Thank you for the clue. However I need to set this server side. I'm grepping the code now and digging around, but if you're aware of how to quickly set PROP_DOMULTIREFS false server side I'ld appreciate the info.
Thanks, Heitzso On Tue, 2002-06-04 at 13:03, St-Germain, Sylvain wrote: > 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]] > > 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.