Its a bit misleading if the samples contain the AXIS serialization routines
as they are not used by WSIF. The AXIS WSDL2Java utility is used to
generate the classes so they have the methods by default, but they could be
deleted and everything should still work.

To map a complex type to a Java class you use the
org.apache.wsif.WSIFService class mapType method. For example:

    service.mapType(
        new javax.xml.namespace.QName(
            "http://wsiftypes.addressbook/";,
            "address"),
        Class.forName("addressbook.wsiftypes.Address"));

Or see the doitDyn method in this testcase for a complete example:
http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-axis-wsif/java/test/addressbook/AddressBookTest.java
And the Address class it uses at:
http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-axis-wsif/java/test/addressbook/wsiftypes/Address.java

When using the WSIFDynamicProxy for stub based invocation WSIF tries to
find a class using the JAX-RPC rules for  converting a QName to a Java
class name. So in the above testcase the doit method uses stub invocation
and does not need a mapType call as WSIF can find the
addressbook.wsiftypes.Address class itself. If the class name doesn't match
the QName you can still use mapType calls and stub invocation.

       ...ant

Anthony Elder
[EMAIL PROTECTED]
Web Services Development
IBM UK Laboratories,  Hursley Park
(+44) 01962 818320, x248320, MP208.


"Jacques-Olivier Goussard" <[EMAIL PROTECTED]> on 07/01/2003 14:20:32

Please respond to [EMAIL PROTECTED]

To:    <[EMAIL PROTECTED]>
cc:
Subject:    wsif - complex type/java bean mapping



Hi
I'm trying to build a generic webservice client that
can handle complex types and is runtime configurable.
Ideally, I wouldn't want users to have to provide a stub
for their complex types.
The WSIF documentation seems to indicate that any well
behaved bean can be used to map complex types on the client
side, but all the examples use WSDL2Java stubs, that contain
AXIS deserialization routines. So
1 - Is there a way to map complex types to a simple bean (no
AXIS getSerializer/getDesrializer routines)?
2 - If not, how can I register at runtime bean deserializers
for AXIS from the WSIF interface ?
Thanks
 Jacques-Olivier




Reply via email to