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. > >>>> > >>> > > > > >
