based on questions posted on discussion forum at http://www.alphaworks.ibm.com/tech/wsif
The official version of WSIF can now be found on the Apache web site since WSIF was donated to Apache a few months ago. Version available from Alphaworks is no longer maintained and will be soon retired.
The Apache WSIF homepage can be found at: http://xml.apache.org/axis/wsif
Nightly builds are available at http://cvs.apache.org/dist/axis/nightly/ The wsif-src*.zip contains source distribution, the wsif-bin* zip file contains a built wsif.jar along with the API Javadoc and the wsif-all*.zip contains the source, the JAR and the javadocs. (* will be replaced by the current version number in the file names).
WSIF is a framework for invoking WSDL-described services. WSTK is IBM's Web Services Toolkit, a preview technology for web services support in Websphere available from alphaworks. WSTK includes WSIF amongst other things.
Axis is an implementation of SOAP. It includes on the server-side infrastructure for deploying web service implementations and then routing SOAP messages between clients and those implementations. It also implements the JAX-RPC specification for invoking SOAP services.
WSIF is similar to the client piece of Axis, in that it is used for invoking services. However, WSIF's API is WSDL-driven and protocol independent; it allows protocol-specific code ("providers") to be plugged in. For invoking SOAP services, WSIF is in fact packaged with an Axis provider, that uses Axis APIs (i.e. JAX-RPC) to do the invocation. So WSIF operates at a more abstract level than Axis.
JAX-RPC is an API for invoking XML-based RPC services - essentially its current scope is limited to invocation of SOAP services. WSIF is an API for invoking WSDL-described services, whether they happen to be SOAP services or not (for example, WSIF defines WSDL bindings so that EJBs, enterprise software acessible using JMS or the Java Connector architecture as wel as local java classes can all be described as first class WSDL services and then invoked using the same, protocol-independent WSIF API).
TODO: describe here current support for system properties etc.
WSIF defines and supports the following WSDL bindings (besides the standard SOAP binding which is supported):
This means that using the WSIF API you can invoke a service, independent of whether it is made available over SOAP, as an EJB, over JMS, using java connectors or as a local java class.
Please subscribe and post your questions to AXIS mailing list (make sure to add [wsif] prefix to mail subject).
java clients.DynamicInvoker http://www.xmethods.net/sd/2001/TemperatureService.wsdl getTemp 10570 Reading WSDL document from 'http://www.xmethods.net/sd/2001/TemperatureService.wsdl' Preparing WSIF dynamic invocation - WSIF0006W: Multiple WSIFProvider found supporting the same namespace URI 'http://schemas.xmlsoap.org/wsdl/soap/'. Found ('org.apache.wsif.providers.soap.apachesoap.WSIFDynamicProvider_ApacheSOAP, org.apache.wsif.providers.soap.apacheaxis.WSIFDynamicProvider_ApacheAxis') - WSIF0007I: Using WSIFProvider 'org.apache.wsif.providers.soap.apachesoap.WSIFDynamicProvider_ApacheSOAP' for namespaceURI 'http://schemas.xmlsoap.org/wsdl/soap/' Executing operation getTemp Result: return=56.0 Done!
WSIF does support complex types - of course XML schema support is limited (but very reasonable).
The DynamicInvoker doesn't support invocation of services using complex types since this requires that java representations of the complex types be generated first.
It is also possible to extend DynamicInvoker to support complex types but it will require some kind of intermediate representation of values that can handle any complex type (such as JROM...)