Re: Need help invoking complex web services

Jeff Greif <[email protected]> Tue, 22 May 2007 07:09:20 -0700
Newsgroups gmane.comp.apache.webservices.wsif.user
Message-ID <[email protected]>
WSIF provides two things, analysis of the wsdl and xml schemas to which 
it refers, and the ability to invoke a web service given the needed 
input data and return the result(s).

Clearly, your application has to provide the input and do something with 
the output.  To put the input in the correct form, something that 
complies with the schema types in the wsdl for the input message must be 
produced.  Similarly, the output must be deserialized into something the 
application can use.

When you are using dynamic invocation, that is, if the application has 
no compile-time knowledge of the datatypes and does not want to generate 
and compile classes representing these on the fly, it will probably have 
to work with some representation close to the XML that is transmitted, 
for example, with Strings and DOM Elements.  It must use the analysis of 
the wsdl and schemas to determine what must be created for the input, 
and build it (for example, using DOM interfaces).  When the output is 
returned, it could similarly be deserialized to DOM Elements.  The 
application must then do whatever it needs to with these representations 
of output instances of types defined in the schemas. 

For example, in an application that provides a user interface, the type 
declarations in the schema will be the guide to constructing forms to 
either gather input from the user or display output to the user.  The 
input entered into the form is assembled into the needed XML to pass as 
parameters to the service, and the output of the service is filled into 
the output form according to the schema.

Whatever the representation used by the application, it must provide 
TypeMappings to go to and from that representation to the XML Schema 
types that are sent via the transport method of the service invocation.  
Depending upon which WSIF provider is used, some provider-specific 
serialization and deserialization classes may also be needed.

Jeff

velidandas wrote:
> What is the additional work to be done here, Please explain in detail so that
> I will
> get my application working.
>
> Thanks very much for all the help.
> Srinivas.
> :*)
>
> velidandas wrote:
>   
>>> -----Original Message-----
>>> From: Jeff Greif [mailto:[email protected]]
>>> Sent: 18 May 2007 23:04
>>> To: [email protected]
>>> Subject: Re: Need help invoking complex web services
>>>
>>>
>>> Yes, Alek is correct.  You have to do some additional work to 
>>> make use 
>>> of WSIF dynamic invocation on complex types, but it can be done.
>>>       
>> If there is some additional work to be done, how can it be said that WSIF
>> itself supports
>> dynamic Invocation with complex types.
>>
>> Could you please provide some sample with what you mean by the additional
>> work to
>> be done
>>
>> Thanks.
>>     
>>> My company has been using WSIF as infrastructure for a user-interface 
>>> provider for web services for several years, using dynamic invocation 
>>> based on the WSDL and the schemas it references.  A wide variety of 
>>> complex types (but not all) are handled. WSIF is a small but 
>>>       
>> here agian what does it mean by "but not all", Could you please 
>> clarify the problem here...
>>
>>     
>>> significant 
>>> piece of a larger system, which gathers the input to the web 
>>> services, 
>>> invokes the services, presents the output, and allows the 
>>> data from the 
>>> outputs to be used to construct inputs to other services.   The 
>>> automatically-generated user interfaces can be delivered on 
>>> the desktop 
>>> or various mobile devices, and customized and beautified with 
>>> additional 
>>> metadata (beyond the schemas) to set up the user-driven 
>>> chaining of the 
>>> services and present the WS inputs and outputs in a way more suitable 
>>> for end users.
>>>
>>> Jeff
>>>
>>> Aleksander Slominski wrote:
>>>       
>>>> Jeff Greif wrote:
>>>>   
>>>>         
>>>>> The remarks about WSIF supporting dynamic invocation with complex
>>>>> types are incorrect.  This question has been asked and 
>>>>>           
>>> answered many
>>>       
>>>>> times on this list.  Please check the archives.
>>>>>     
>>>>>           
>>>> the issues for discussion is "support" - if one expects automatic
>>>> handling of
>>>> all of XML schemas types in WSIF that is not what WSIF does 
>>>>         
>>> but it does
>>>       
>>>> help with mapping Java data (or just XML possibly that follows XS
>>>> - that is dynamic case) and sending XML to a service 
>>>>         
>>> identified by WSDL.
>>>       
>>>> in my experience dynamic case is typically encountered in 
>>>>         
>>> two situations:
>>>       
>>>> 1. some kind of user interface: it needs to parse WSDL and 
>>>>         
>>> present input
>>>       
>>>> to user
>>>>     then it can use WSIF to send that input to that service
>>>> 2. workflows or other systems that need to invoke services 
>>>>         
>>> described in WSDL
>>>       
>>>>     but those systems do not generate input they just do 
>>>>         
>>> its processing and
>>>       
>>>>     they are less dynamic (and can handle less of varied 
>>>>         
>>> inputs) more
>>>       
>>>> processing they do.
>>>>
>>>> my .01c
>>>>
>>>> best,
>>>>
>>>> alek
>>>>   
>>>>         
>>>>> On 5/17/07, Velidanda Srinivas 
>>>>>           
>>> <srinivas.velidanda-JN3Mhpvxl8ynejAxpDtHaVpr/1R2p/[email protected]>
>>>       
>>>>> wrote:
>>>>>     
>>>>>           
>>>>>> WSIF could not be used for dynamic invocation using complex Types.
>>>>>>
>>>>>> WSIF does not support complex types in dynamic invocation.
>>>>>>
>>>>>> Try and see XSUL, if works.
>>>>>>
>>>>>> Please let me know if you get working with XSUL.
>>>>>>
>>>>>>       
>>>>>>             
>>>>>>> -----Original Message-----
>>>>>>> From: Tim Hamer [mailto:[email protected]]
>>>>>>> Sent: 14 May 2007 19:20
>>>>>>> To: [email protected]
>>>>>>> Subject: Need help invoking complex web services
>>>>>>>
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> We're trying to create a Java application capable of
>>>>>>> consuming any web service dynamically given only the WSDL.
>>>>>>> The only problem is that we can't figure out how to invoke a
>>>>>>> service that takes a complex type as a parameter without
>>>>>>> first generating code. Is it possible to use WSIF to do such
>>>>>>> an invocation without generating code, and if so, could
>>>>>>> someone please send us some hint on how to do so?
>>>>>>>
>>>>>>> thanks,
>>>>>>> Tim
>>>>>>>               
>> Aleksander Slominski wrote:
>>     
>>> Jeff Greif wrote:
>>>       
>>>> The remarks about WSIF supporting dynamic invocation with complex
>>>> types are incorrect.  This question has been asked and answered many
>>>> times on this list.  Please check the archives.
>>>>         
>>> the issues for discussion is "support" - if one expects automatic
>>> handling of
>>> all of XML schemas types in WSIF that is not what WSIF does but it does
>>> help with mapping Java data (or just XML possibly that follows XS
>>> - that is dynamic case) and sending XML to a service identified by WSDL.
>>>
>>> in my experience dynamic case is typically encountered in two situations:
>>> 1. some kind of user interface: it needs to parse WSDL and present input
>>> to user
>>>     then it can use WSIF to send that input to that service
>>> 2. workflows or other systems that need to invoke services described in
>>> WSDL
>>>     but those systems do not generate input they just do its processing
>>> and
>>>     they are less dynamic (and can handle less of varied inputs) more
>>> processing they do.
>>>
>>> my .01c
>>>
>>> best,
>>>
>>> alek
>>>       
>>>> On 5/17/07, Velidanda Srinivas <srinivas.velidanda-JN3Mhpvxl8ynejAxpDtHaVpr/1R2p/[email protected]>
>>>> wrote:
>>>>         
>>>>> WSIF could not be used for dynamic invocation using complex Types.
>>>>>
>>>>> WSIF does not support complex types in dynamic invocation.
>>>>>
>>>>> Try and see XSUL, if works.
>>>>>
>>>>> Please let me know if you get working with XSUL.
>>>>>
>>>>>           
>>>>>> -----Original Message-----
>>>>>> From: Tim Hamer [mailto:[email protected]]
>>>>>> Sent: 14 May 2007 19:20
>>>>>> To: [email protected]
>>>>>> Subject: Need help invoking complex web services
>>>>>>
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> We're trying to create a Java application capable of
>>>>>> consuming any web service dynamically given only the WSDL.
>>>>>> The only problem is that we can't figure out how to invoke a
>>>>>> service that takes a complex type as a parameter without
>>>>>> first generating code. Is it possible to use WSIF to do such
>>>>>> an invocation without generating code, and if so, could
>>>>>> someone please send us some hint on how to do so?
>>>>>>
>>>>>> thanks,
>>>>>> Tim
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: [email protected]
>>>>>> For additional commands, e-mail: [email protected]
>>>>>>
>>>>>>
>>>>>> ______________________________________________________________
>>>>>> __________
>>>>>> This e-mail has been scanned for all viruses by MessageLabs.
>>>>>> ______________________________________________________________
>>>>>> __________
>>>>>>
>>>>>>             
>>>>> ________________________________________________________________________
>>>>> This e-mail has been scanned for all viruses by MessageLabs.
>>>>>
>>>>> Singularity operates globally through its offices in New York,
>>>>> London, Singapore, Ireland and India. Singularity Limited is
>>>>> incorporated in the United Kingdom with Registration Number NI 31519
>>>>> and its Registered Office at 100 Patrick Street, Derry, BT48 7EL,
>>>>> United Kingdom.
>>>>> ________________________________________________________________________
>>>>>
>>>>>           
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>>
>>>>         
>>> -- 
>>> The best way to predict the future is to invent it - Alan Kay
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>>>
>>>       
>>     
>
>