Hi,

Deploying Doc/Lit services with Axis and taking the WSDL from the deployed
service works quite well. The WSDL and the SOAP messages are looking all
right for Doc/Lit. But there are still a few odd, methods with no
parameters, methods returning void or the soapenc prefix in arrays.

Taking a WSDL document with an arbitrary schema doesn't work and can't work.
I have found no facility to do the binding. Perhaps a binding framework
could be used, but for the generation of the response there is no store for
a mapping or a schema nor there is code that can produce a response obeying
the rules in an arbitrary schema.

Generating a service or a client out of a WSDL document using the
conventions for wrapped services works quite well. There are some things
hardcoded like methodname + "Response" but thats ok.

I tried to unterstand how Axis supports Doc/Lit. Not only WSDL2Java and
Java2WSDL are involved providers are playing also an important role. The
code in the providers packages and the code in the org.apache.axis.wsdl.**
packages is hard to read. There are a lot of duplicated or almost identical
code spread over several classes. Just some examples:

- The code of the method generateWSDL in BasicProvider and the subclass
JavaProvider is almost identical.
- Code to find the RPCCall in the body-Element is duplicated in RPCProvider,
BSFProvider and COMProvider
- ...

Its hard to understand how Axis chooses or computes namespaces or how Java
types are mapped to schema definition. I guess refactoring and simplifying
the code in the providers.** and wsdl.** packages is a must before extending
the support for Doc/Lit.

Thomas

Reply via email to