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