Hi,

Using the dynamic API directly, you do not need to generate any stubs. The only thing you need to have is java equivalents of all the user defined schema types used by the web service (these can be generated using WSDL2Java). This is demonstrated in all the dynamic clients for the samples. If your web service doesn't have user defined types, you don't generate anything.

If you use the stub API, in addition to having the java types, you need to generate a stub interface.

Nirmal.


Anuj Agrawal <[EMAIL PROTECTED]>

04/01/2003 02:06 PM
Please respond to wsif-user

       
        To:        [EMAIL PROTECTED]
        cc:        
        Subject:        Re: Dynamic Invoker (was Re: SOAP samples)



This was good information - thanks Nirmal!  By 'truly dynamic' i meant
that there is no need to *generate* any stubs etc.

My particular scenario is that currently there is a need to connect to
one web service.  However, we forsee needing to connect to multiple
different web services in the future.  So, we'd like to setup our
framework so that it would be least code changes/hassle on our end as
and when we connect to the different web services.  We figured WSIF
provides us that framework, but kept seeing the samples utilize some
"generated" code.  We figure we need to come up with a solution that is
not quite the DynamicInvoker extreme, but not the
"need-to-generate-static-stubs" route either - something in the middle.
Does this approach sound right?

I do appreciate all the assistance/patience. :)

Anuj.

--- Nirmal Mukhi <[EMAIL PROTECTED]> wrote:
> There are two kinds of ways you can go to access *a particular* web
> service:
> 1. Stub invocation:
>         Use the WSDL to generate java classes and a stub interface.
>         Write a small bit of code using the WSIF API to create the
> service
> object from the WSDL and supply it with the stub interface, then use
> the
> stub interface ot invoke the service.
>         The main advantage of this approach is that you (the
> application)
> use a high level view of the service (the stub interface).
> 2. Dynamic invocation:
>         Write code to access the WSDL, build WSIF messages and
> operations,
> and invoke the service.
>
> If by "truly dynamic" you mean you want code to be able to invoke
> *any*
> web service, the DynamicInvoker is what you should look at.
>
> In terms of performance issues, DynamicInvoker will be slowly than
> the
> other two clients. The stub/dynamic clients will be almost identical
> in
> WSIF (stub based will be slightly slower probably), since stub
> invocation
> really uses a dynamic proxy mechanism (i.e. under the wraps it really
> uses
> the dynamic API, we don't actually generate a hardcoded stub class,
> just
> allow access via the stub interface).
>
> Anuj Agrawal <[EMAIL PROTECTED]>
> Hmm.. i looked at the dynamic clients in the samples.  And now i'm
> confused (i think).  I thought the dynamic clients would be truly
> dynamic, but they ALL have references to some kind of generated
> beans/stubs (e.g. in the localjava sample, it imports
> localjava.client.stub.addressbook.wsiftypes.Address).  Is that the
> right approach?
>
> I should also explain here that i'm totally comfortable creating
> static
> invocation clients (using WSDL2Java tool to generate stubs etc.).
> But
> for our long term goals, we felt that using DII would be a better way
> to go and an article on webservices.org suggested that IBM's (and now
> ASF's) WSIF is a good way to go.  But then on the java.sun.com's web
> services tutorial, they suggest to use DII *only* if the client
> cannot
> use static stubs.  The article also suggests that the performance hit
> of using DII is not very significant - is this really the case?  I
> guess it boils down to should we or shouldn't we use DII over static
> stubs? (The only article that compares the 2 approaches was the one
> on
> webservices.org.)
>
> Anuj.
>
> --- Nirmal Mukhi <[EMAIL PROTECTED]> wrote:
> > The DynamicInvoker is an example of using the WSIF dynamic API to
> > invoke
> > any web service. If you want to write your own client  that uses
> > WSIF's
> > dynamic API, that code would help. However since the DynamicInvoker
> > code
> > is used to invoke *any* web sevrice, it does introspection and
> things
> > that
> > you would not require if you were just writing a client to access a
>
> > particular web service. You can also look at the dynamic clients in
> > all
> > the samples. There is no "recommended" way, but hopefully all those
>
> > examples will help.
> >
> > Anuj Agrawal <[EMAIL PROTECTED]>
> > Ok - that clears that up.  I see the DynamicInvoker class being
> used
> > as
> > well.  Is the code in that class the "recommended" way for us to
> > build
> > web service clients using dynamic invocation?
> >
> > --- Nirmal Mukhi <[EMAIL PROTECTED]> wrote:
> > > WSIF allows stubless (dynamic) invocation as well as invocation
> > > through
> > > JAX RPC stubs. You don't have to do stub invocation if you don't
> > want
> > > to.
> > > The sample present two alternative clients for accessing the same
> > > service,
> > > one using the dynamic API and one using a JAX RPC stub (all the
> > > samples
> > > follow this format).
> > >
> > > Anuj Agrawal <[EMAIL PROTECTED]>
> > > I've been reading up on WSIF and it sounds great!  I have a
> > question
> > > regarding usage.
> > >
> > > In the SOAP (StockQuote) sample on the ws.apache.org/wsif site,
> why
> > > are
> > > (any) stubs are used in the example?  I thought one of the main
> > ideas
> > > of the dynamic invocation was that we wouldn't need to generate
> > > stubs.
> > > Did i miss something here?

__________________________________________________
Do you Yahoo!?
Yahoo! Tax Center - File online, calculators, forms, and more
http://platinum.yahoo.com

Reply via email to