Or you could start with the wsdl. Create valid wsdl then generate the java classes from it. I have come to the conclusion that starting with wsdl is a "best practice" just to avoiud conversion error and differences.
> -----Original Message----- > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > Sent: Monday, August 04, 2003 10: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. > > > > > >
