+1. ----- Original Message ----- From: "Hansen, Richard" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, August 04, 2003 11:32 AM Subject: RE: WRAPPED services without wsdl
> 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. > > > > > > > > > >
