Completely agreed.  Seems like Axis is dead in the water re: this matter.

-----Original Message-----
From: Manchaiah, Girish (LNG-DAY)
[mailto:[EMAIL PROTECTED]
Sent: Thursday, August 07, 2003 9:17 AM
To: '[EMAIL PROTECTED]'
Subject: RE: WRAPPED services without wsdl


May be one of us should help make opensource WSTKs emit right WSDLs

-----Original Message-----
From: Anne Thomas Manes [mailto:[EMAIL PROTECTED]
Sent: Thursday, August 07, 2003 10:10 AM
To: [EMAIL PROTECTED]
Subject: Re: WRAPPED services without wsdl


I think you're being a little harsh, Richard. WSDL is a very complex beast.
I've been studying WSDL for a couple of years, now, yet I often need to
reference the spec when I answer questions about it.

Stuart's correct -- a Web services toolkit should know how to spit out valid
WSDL. But doc/literal support has been an afterthought for most of the Java
toolkits. I've seen problems with doc/literal WSDL generation with Axis
(buggy), JAX-RPC RI (seriously buggy), and GLUE (minor bugs). I haven't seen
any bugs with WASP so far. I haven't tried BEA, Cape Clear, or XMLBus,
although I suspect that they handle doc/lit better than Axis does.

I certainly agree with you that the best practice is always to start with
WSDL, but I don't think it's unreasonable to use a java2wsdl tool to
generate the first cut at the WSDL file. I also think it's helpful to have
some type of java2schema tool to generate xsd type descriptions of a Java
class. Particularly at these early stages.

It would be nice if we had more tools to choose from -- particularly design
&development tools -- that would spit out valid doc/literal WSDL files.
These tools are coming, but for the moment, you still need to do a lot of
hand-crafting.

In any case, for the moment I definitely recommend using one of the tools
listed below to help you create and validate WSDL files.

Anne

----- Original Message -----
From: "Hansen, Richard" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, August 07, 2003 9:28 AM
Subject: RE: WRAPPED services without wsdl


> Your argurment might be ok for service consumers. But if you are
developing
> services for others to consume then WSDL is the public interface of your
> service. If you don't/can't/won't understand the WSDL for your service
then
> you amybe shouldn't be publishing a web service.
>
> > -----Original Message-----
> > From: Stuart Barlow [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, August 07, 2003 8:16 AM
> > To: [EMAIL PROTECTED]
> > Subject: Re: WRAPPED services without wsdl
> >
> >
> > But then I have to know all the details of WSDL? :-)
> >
> > As an application (vertical solution developer) I should not
> > have to know the intricacies of interface defn. That is why
> > CORBA is dead. Because it is disgusting to use.
> >
> > What is the point of a web services toolkit if it doesnt
> > understand WSDL?
> >
> > But then of course I could just dig out that W3C WSDL document.
> > :-)
> >
> > Hansen, Richard wrote:
> >
> > > Here are my steps.
> > >
> > > 1. Create WSDL
> > > 2. Run WSDL2Java to generate client and server classes.
> > > 3. Implement service using generated server skeleton.
> > >
> > > I am convinced that starting with WSDL is best. WSDL is the
> > public interface
> > > for you service. Starting with a WSDL file as the
> > definition avoids problems
> > > and suprises. If I can define in it in WSDL then I am
> > pretty sure axis will
> > > handle it.
> > >
> > >
> > >
> > >>-----Original Message-----
> > >>From: Stuart Barlow [mailto:[EMAIL PROTECTED]
> > >>Sent: Thursday, August 07, 2003 4:58 AM
> > >>To: [EMAIL PROTECTED]
> > >>Subject: Re: WRAPPED services without wsdl
> > >>
> > >>
> > >>Sorry to get back to this thread but...
> > >>With AXIS you dont deploy a WSDL you write/generate a wsdd file.
> > >>
> > >>So is the process...
> > >>1. Get Java interface I would like to convert to a web service
> > >>2. Run Java2WSDL to get WSDL
> > >>3. Fix errors in generated WSDL
> > >>4. Run WSDL2Java to generate client and server classes.
> > >>5. Implement service using generated server skeleton.
> > >>
> > >>All the above works without step 3 for the default of RPC/Encoded.
> > >>But RPC/Encoded is not recommended/supported in near future and
> > >>difficult to talk to from Microsoft clients.
> > >>
> > >>If I do the fixing in step 3 then I should have a much more
> > >>compatible web service.
> > >>
> > >>Thanks.
> > >>Stuart.
> > >>
> > >>Anne Thomas Manes wrote:
> > >>
> > >>
> > >>>You pretty much have to fix the WSDL.
> > >>>WSDL editors:
> > >>>- Cape Clear (http://www.capescience.com/downloads/wsdleditor/)
> > >>>- Omniopera (http://www.omniopera.com)
> > >>>- XMLSpy (http://www.altova.com/products_ide.html)
> > >>>- SOAPscope (http://www.mindreef.com/)
> > >>>
> > >>>Anne
> > >>>
> > >>>----- Original Message -----
> > >>>From: "Irazabal, Alex" <[EMAIL PROTECTED]>
> > >>>To: <[EMAIL PROTECTED]>
> > >>>Sent: Monday, August 04, 2003 11:31 AM
> > >>>Subject: RE: WRAPPED services without wsdl
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>Thanks. If I use AXIS on both ends (say using WRAPPED
> > >>
> > >>services), do I
> > >>
> > >>>still
> > >>>
> > >>>
> > >>>>have the same issues? I have a couple of web services
> > >>
> > >>prototypes that
> > >>
> > >>>work,
> > >>>
> > >>>
> > >>>>so I am assuming ( :) ) that is the case...Also any
> > >>
> > >>suggestions on a WSDL
> > >>
> > >>>>editor/validator?
> > >>>>Alex
> > >>>>
> > >>>>-----Original Message-----
> > >>>>From: Anne Thomas Manes [mailto:[EMAIL PROTECTED]
> > >>>>Sent: Monday, August 04, 2003 11:26 AM
> > >>>>To: [EMAIL PROTECTED]
> > >>>>Subject: Re: WRAPPED services without wsdl
> > >>>>
> > >>>>
> > >>>>Generate the WSDL, then use a WSDL editor/validator to
> > >>
> > >>identify and work
> > >>
> > >>>>through the errors. Most of the errors relate to
> > namespace problems.
> > >>>>Java2WSDL generates an empty targetNamespace in the
> > >>
> > >><schema> definition.
> > >>
> > >>>>----- Original Message -----
> > >>>>From: "Irazabal, Alex" <[EMAIL PROTECTED]>
> > >>>>To: <[EMAIL PROTECTED]>
> > >>>>Sent: Monday, August 04, 2003 10:56 AM
> > >>>>Subject: RE: WRAPPED services without wsdl
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>>Thanks to all who replied...one last question: How is one
> > >>
> > >>to avoid these
> > >>
> > >>>>>WSDL errors? Are they documented? Work-arounds?
> > >>>>>Thanks,
> > >>>>>A
> > >>>>>
> > >>>>>-----Original Message-----
> > >>>>>From: Anne Thomas Manes [mailto:[EMAIL PROTECTED]
> > >>>>>Sent: Monday, August 04, 2003 10:49 AM
> > >>>>>To: [EMAIL PROTECTED]
> > >>>>>Subject: Re: WRAPPED services without wsdl
> > >>>>>
> > >>>>>
> > >>>>>Alex,
> > >>>>>
> > >>>>>1. Using doc/literal on the wire reduces interoperability
> > >>
> > >>problems. The
> > >>
> > >>>>WS-I
> > >>>>
> > >>>>
> > >>>>>Basic Profile requires the use of literal. From the
> > >>
> > >>on-the-wire SOAP
> > >>
> > >>>>message
> > >>>>
> > >>>>
> > >>>>>perspective, WRAPPED and DOCUMENT are identical -- they
> > >>
> > >>both produce
> > >>
> > >>>>>document/literal on the wire. The only difference
> > between these two
> > >>>>
> > >>>>options
> > >>>>
> > >>>>
> > >>>>>is in what gets produced by Java2WSDL and WSDL2Java. When you use
> > >>>
> > >>>WRAPPED,
> > >>>
> > >>>
> > >>>>>your WSDL file uses certain naming conventions that cause
> > >>
> > >>WSDL2Java to
> > >>
> > >>>>>produce an interface that supports invocation like:
> > >>>>>     string return = myProxy.methodName( param1, param2 );
> > >>>>>When you use DOCUMENT, WSDL2Java produces an interface like:
> > >>>>>     string return = myProxy.methodName( javaBean );
> > >>>>>
> > >>>>>2. Clients figure out how to use your service by
> > >>
> > >>interpreting your WSDL
> > >>
> > >>>>>file. If you let Axis generate your WSDL file for a
> > >>
> > >>doc/literal service,
> > >>
> > >>>>>currently it produces errors. You know what format your
> > >>
> > >>service needs to
> > >>
> > >>>>>process the requests, so you can build a client manually
> > >>
> > >>using the call
> > >>
> > >>>>>object. But other developers don't know anything about the
> > >>
> > >>service other
> > >>
> > >>>>>than what the WSDL tells them. If your WSDL has errors, no
> > >>
> > >>other clients
> > >>
> > >>>>>will be able to access your service.
> > >>>>>
> > >>>>>Anne
> > >>>>>
> > >>>>>
> > >>>>>----- Original Message -----
> > >>>>>From: "Irazabal, Alex" <[EMAIL PROTECTED]>
> > >>>>>To: <[EMAIL PROTECTED]>
> > >>>>>Sent: Monday, August 04, 2003 10:33 AM
> > >>>>>Subject: RE: WRAPPED services without wsdl
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>>Anne, can you clarify a couple of things for me, please?
> > >>>>>>1) What is the benefit of doc/literal on the wire using WRAPPED
> > >>>>
> > >>>>services?
> > >>>>
> > >>>>
> > >>>>>>Why would one care what format is on the wire...
> > >>>>>>2) What do you mean "other clients won't be able to
> > >>
> > >>figure out how to
> > >>
> > >>>>>access
> > >>>>>
> > >>>>>
> > >>>>>>your service"?
> > >>>>>>
> > >>>>>>Thanks,
> > >>>>>>Alex
> > >>>>>>
> > >>>>>>[Irazabal, Alex]
> > >>>>>>-----Original Message-----
> > >>>>>>From: Anne Thomas Manes [mailto:[EMAIL PROTECTED]
> > >>>>>>Sent: Monday, August 04, 2003 10:22 AM
> > >>>>>>To: [EMAIL PROTECTED]
> > >>>>>>Subject: Re: WRAPPED services without wsdl
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>I don't understand why you would try to create a WRAPPED
> > >>
> > >>web service
> > >>
> > >>>>>without
> > >>>>>
> > >>>>>
> > >>>>>>using WSDL? It doesn't make any sense. The whole point
> > >>
> > >>behind WRAPPED
> > >>
> > >>>is
> > >>>
> > >>>
> > >>>>>to
> > >>>>>
> > >>>>>
> > >>>>>>let you generate a client proxy object using WSDL2Java so
> > >>
> > >>that you can
> > >>
> > >>>>>>invoke the service using an RMI-style invocation
> > (method name with
> > >>>>>>parameters). From the client developer's point of view,
> > >>
> > >>WRAPPED makes
> > >>
> > >>>>the
> > >>>>
> > >>>>
> > >>>>>>service look and feel like rpc/encoded, but on the wire it's
> > >>>>
> > >>>>doc/literal.
> > >>>>
> > >>>>
> > >>>>>>But if you aren't using WSDL2Java, then you'll have to
> > >>
> > >>use the call
> > >>
> > >>>>>object.
> > >>>>>
> > >>>>>
> > >>>>>>I don't think that Axis provides a mechanism to
> > reference a schema
> > >>>
> > >>>file.
> > >>>
> > >>>
> > >>>>>It
> > >>>>>
> > >>>>>
> > >>>>>>only supports WSDL. Besides, Axis will always create a
> > >>
> > >>WSDL file for
> > >>
> > >>>you
> > >>>
> > >>>
> > >>>>>>when you deploy the service. The problem is that right now, the
> > >>>>
> > >>>>generated
> > >>>>
> > >>>>
> > >>>>>>WSDL will have errors in it, which means that other
> > >>
> > >>clients won't be
> > >>
> > >>>>able
> > >>>>
> > >>>>
> > >>>>>to
> > >>>>>
> > >>>>>
> > >>>>>>figure out how to access your service.
> > >>>>>>
> > >>>>>>Here's some sample client code for a typical WRAPPED service. It
> > >>>
> > >>>should
> > >>>
> > >>>
> > >>>>>look
> > >>>>>
> > >>>>>
> > >>>>>>pretty much identical to client code for an RPC service:
> > >>>>>>
> > >>>>>>package test.axis.wrapped.client;
> > >>>>>>
> > >>>>>>import javax.xml.namespace.QName;
> > >>>>>>import javax.xml.rpc.Service;
> > >>>>>>import javax.xml.rpc.ServiceFactory;
> > >>>>>>import java.net.URL;
> > >>>>>>import test.axis.wrapped.iface;
> > >>>>>>
> > >>>>>>public class AxisWrappedClient
> > >>>>>>{
> > >>>>>>  public static void main(String[]args) throws Exception {
> > >>>>>>       String UrlString = "wsdl-url";
> > >>>>>>       String nameSpaceUri = "urn:axis.wrapped"
> > >>>>>>       String serviceName = "WrappedService";
> > >>>>>>       String portName = "WrappedServicePort";
> > >>>>>>
> > >>>>>>       URL currWsdlUrl = new URL(UrlString);
> > >>>>>>       ServiceFactory serviceFactory =
> > >>
> > >>ServiceFactory.newInstance();
> > >>
> > >>>>>>       Service currService =
> > >>>
> > >>>serviceFactory.createService(currWsdlUrl,
> > >>>
> > >>>
> > >>>>>>               new QName(nameSpaceUri, serviceName));
> > >>>>>>
> > >>>>>>       Curr myProxy = (Curr) currService.getPort(
> > >>>>>>               new QName(nameSpaceUri, portName),
> > >>>>>>               test.axis.wrapped.iface.class);
> > >>>>>>
> > >>>>>>      string return = myProxy.methodName( arg[0], arg[1] );
> > >>>>>>
> > >>>>>>  }
> > >>>>>>}
> > >>>>>>
> > >>>>>>
> > >>>>>>Note that test.axis.wrapped.iface is the interface generated by
> > >>>>
> > >>>>WSDL2Java.
> > >>>>
> > >>>>
> > >>>>>>Anne
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>>----- Original Message -----
> > >>>>>>
> > >>>>>>From: Dimuthu Leelarathne
> > <mailto:[EMAIL PROTECTED]>
> > >>>>>>To: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> > >>>>>>Sent: Monday, August 04, 2003 12:42 AM
> > >>>>>>Subject: WRAPPED services without wsdl
> > >>>>>>
> > >>>>>>
> > >>>>>>Hi all,
> > >>>>>>
> > >>>>>>I'm trying to write a wrapped web service without using
> > >>
> > >>wsdl. I have
> > >>
> > >>>>some
> > >>>>
> > >>>>
> > >>>>>>simple basic questions,
> > >>>>>>
> > >>>>>>1. Where should I put the xml schema ? Should it be
> > inside wsdd or
> > >>>>
> > >>>>should
> > >>>>
> > >>>>
> > >>>>>I
> > >>>>>
> > >>>>>
> > >>>>>>put a reference  to it in the wsdd ?
> > >>>>>>
> > >>>>>>2. I read something like this written by Anne ;
> > >>>>>>
> > >>>>>>The main reason that you want to use WRAPPED
> > >>>>>>is so that you can invoke your service using something
> > like this:
> > >>>>>>string ResponseInfo = service.SubscriptionRequest(
> > >>
> > >>usedId, password );
> > >>
> > >>>>>>If this is the case how can I provide it in the client without
> > >>>>>
> > >>>>>instantiating
> > >>>>>
> > >>>>>
> > >>>>>>a call object ? Since wsdl is not used stubs, SDI and etc
> > >>
> > >>..... won't
> > >>
> > >>>be
> > >>>
> > >>>
> > >>>>>>created. So should I just anyway go ahead and use the
> > >>
> > >>call object ?
> > >>
> > >>>>>>Thank you,
> > >>>>>>Dimuthu.
> > >>>>>>
> > >>>>>
> > >>>
> > >
> >
>

Reply via email to