<snip>
Is there a good reference you can point me to for hand-creation of WSDL
and WSDD that would include use of non-bean objects? I think that lack
of knowledge is part of my stumbling.
</snip>
My knowledge is based mainly on "Building Web Services with Java" by Steve Graham et
al, published by SAMS. There is quite a good chapter on WSDL, and a good overview of
the Axis architecture, though some specifics may be dated by now (it was released
before Axis 1.0).
Other suggestions are to take a look at the WSDL generated by Axis for some of its
samples or to use a WSDL editor - some are listed on the Axis Wiki/FAQ pages.
Basically you need to generate XML schema descriptions for your objects that are not
Java Beans. In essence this will probably boil down to
<complexType name="...>
<sequence>
<element name="..." type="..."/>
...
</sequence>
</complexType>
with an <element> for each member variable of the object that needs to be serialized
(IIRC WSDL2Java works fine if your object follows the JavaBean get/set convention, so
you may want to start by assuming that you need an <element> for every getXXX method).
The WSDD files need something like this:
<typeMapping xmlns:ns="http://namespace" qname="ns:class"
type="java:fully.qualified.class.name"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
By convention the namespace is the reverse of the Java package name.
In server-config.wsdd this goes under each <service>.
In client-config.wsdd you just need one entry per type.
Just replace the serializer/deserializer factory names with your own.
The best source for writing your own serializer/deserializer is probably the Axis
source code and JavaDoc.
Hope this helps
Keith