Yes, it is a bit harsh. Just trying to make a point. I definitely think
suppliers and consumers of web services have different levels of
responsibility and knowledge. 

I struggle with the WSDL too. XML schema is not as easy as DTD. I finally
buckled down and read a 400 page book on XML schema. How can you fix a WSDL
if you don't understand WSDL and XML schema. And if you know enough to fix
it, then it just seems eaiser to start with the WSDL.

How many of the problems in this list are caused by WSDL issues? Right now
state of the art is that tools don't generate perfect WSDL and many tools
seem to work with incorrect WSDL or won't work with perfectly valid WSDL.
Will the tools ever be good enough? Seems like if you go from Java to WSDL
then WSDL to Java there will always be differences. It seems pointless to
fight the tools. 

I'm skeptical of the push this button and everyting you need will be
generated for you solutions. Often the generated solutions are not optimal
or even very good.

Rick Hansen



> -----Original Message-----
> From: Anne Thomas Manes [mailto:[EMAIL PROTECTED]
> Sent: Thursday, August 07, 2003 9: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