Tim,
You mentioned 'write a server side Java API and expose it is as a web service'. I am new to web services so when I started I had the same rosy picture in my mind but I failed at the very first step. The Java2WSDL was not able to create my complex class hierarchy. Also there were some types (Map, Collection) which are not interoperable (my clients are .NET based)Do you think I did something wrong. After some reading the impression I have is that I need to do lot of work to have a real working web service like:
- having a separate API layer
- duplicate classes in the API layer to make sure you don't break the API with every change in model, convert non-interop type to interop ones.
- Take care of backward compatibility.
Do you think I am totally on a wrong track and things are much simpler? I want to take benefit for other people experiences as compared to going on a wrong track and then learning myself the hard way.
Thanks
Dheeraj Soti
-----Original Message-----
From: news [mailto:[EMAIL PROTECTED]] On Behalf Of Tim K. (Gmane)
Sent: Wednesday, March 23, 2005 4:31 PM
To: [email protected]
Subject: Re: possible ways of creating WSDL file
In an ideal world, yes, we would have a DBA team too, but it's not 1999
any more, we need to get by with whatever resources we have.
Our case is exactly what Joe describes, a server side API used by most
of the clients in process and 1 client remotely, so it's very convenient
to define the Java server API first and expose that as web services.
It's just not practical in this case to start from the WSDL (or XML Schema).
As for dropping in a class in the container, I think that's what the Web
Services in J2EE 1.4 are supposed to do.
Tim
Joe Plautz wrote:
> This is a topic that is very close to my heart that I've agonized over
> for long periods of time.
>
> My ideal world would be for me to have a class that I can drop into
> some
> sort of container where I don't have to know anything about WSDL or
> deployment descriptors and security. That should be the containers work
> to figure it all out. I will wait patiently until that day.
>
> When developing a project that will be exposed as a web service you
> really need to decide what the intended target is. If it's a large
> server side api that will be used by multiple clients which for the most
> part aren't going to be using it as a web service, start with your code
> then generate a WSDL. If you are creating something that is going to be
> predominantly going to be used behind a web service, I would start with
> a WSDL.
>
> Also, I'm coming to the realization that nobody should have to deal
> with
> a WSDL. I like the idea of a XML Schema team, a group of of senior
> developers/architects who define what/why/how things are exposed.
>
> Joe
>
> Anne Thomas Manes wrote:
>
>> In a better world, you have a XML Schema administration team (similar
>> to your DBA team) that is responsible for developing the schemas that
>> applications will communicate with. (Do your developers define their
>> own database schemas???)
>>
>> When developers build services, they should be handed the schemas
>> they are supposed to use, and then map those schems to their code.
>>
>> Developers should not generate WSDL from code.
>>
>> Anne
>>
>>
>> On Wed, 23 Mar 2005 14:55:38 -0800, Tim K. (Gmane)
>> <[EMAIL PROTECTED]> wrote:
>>
>>> In an ideal world I would agree with Anne. However, consider this
>>> scenario: you have a team of 10+ developers working on a server side
>>> API that follows the rules to allow it to be easily exposed as web
>>> services. The API has over 200+ methods total, distributed over 20+
>>> modules. Each module would be exposed as a web service, hence 20+
>>> WSDL files. The goal is to have the API on the server side look
>>> exactly the same as the API on the client side, so in theory an
>>> application built against the API could be run in process on the
>>> server or remotely via web services.
>>>
>>> Now, only a couple of these developers know anything about web
>>> services and even those developers are just getting their feet wet
>>> with web services.
>>>
>>> During the development cycle the API's can (slightly) change many
>>> times a day and everything needs to be recompiled/regenerated. I
>>> think it's unreasonable in this case to edit any generated WSDL
>>> files by hand. It's much more reasonable to just fire an ant task
>>> that starts with the server side java classes, generates the WSDL's
>>> and from those the client side stubs. This improves the development
>>> process a lot.
>>>
>>> I hope I'll live to see the day when the tools are good enough to
>>> achieve this task end to end. Obviously we are not there yet, but we
>>> are getting close.
>>>
>>> Btw, this is not an imaginary scenario, it's the cruel reality I
>>> live in every day.
>>>
>>> Tim
>>>
>>> Anne Thomas Manes wrote:
>>>
>>>> I strongly disagree with Sunil. WSDL First (TM) is the way to go.
>>>>
>>>> I think it's okay to use java2wsdl to generate a WSDL template to
>>>> start with, but you should always edit the generated WSDL.
>>>>
>>>> My recommendation is to use a WSDL editing wizard. Cape Clear
>>>> provides a free one (SOA Editor). Altova and Sonic provide
>>>> commercial ones.
>>>>
>>>> Anne
>>>>
>>>>
>>>> On Wed, 23 Mar 2005 13:49:53 -0500, Soti, Dheeraj
>>>> <[EMAIL PROTECTED]>
>>>> wrote:
>>>>
>>>>
>>>>> Sunil,
>>>>>
>>>>> Will java2wsdl create the complex type hierarchies correctly? I
>>>>> have a complex
>>>>> class hierarchy (using inheritance and nested classes) and finally
>>>>> I ended up
>>>>> handcoding the wsdl from scratch. Did I miss something? I've also
>>>>> read some best
>>>>> practice articles talking about top down approach where u write
>>>>> your wsdl first
>>>>> and then proceed.
>>>>>
>>>>> Thanks
>>>>>
>>>>> Dheeraj
>>>>>
>>>>> -----Original Message-----
>>>>> From: Sunil Kothari [mailto:[EMAIL PROTECTED]]
>>>>> Sent: Wednesday, March 23, 2005 1:20 AM
>>>>> To: [email protected]
>>>>> Cc: [EMAIL PROTECTED]
>>>>> Subject: Re:possible ways of creating WSDL file
>>>>>
>>>>> I think of 3 ways of creating WSDL
>>>>> 1) Using java2wsdl tool
>>>>> 2) Using .jws facility
>>>>> 3) Handcode WSDL
>>>>>
>>>>> I think 3) is error-prone and requires high level of understanding
>>>>> of WSDL. 2) is also not recommended for various reasons like
>>>>> a) No deployment descriptors are created
>>>>> b) WSDL is not persistent and prone to changes
>>>>> c) (This I am not sure) For overloaded methods this way of
>>>>> creation causes problems.
>>>>>
>>>>> I hope this helps.
>>>>>
>>>>> Sunil Kothari
>>>>> Valtech India
>>>>>
>>>>> DISCLAIMER:
>>>>> Any Information contained or transmitted in this e-mail and / or
>>>>> attachments may contain confidential data, proprietary to Majoris
>>>>> Systems Pvt Ltd., and / or the authors of the information and is
>>>>> intended for use only by the individual or entity to which it is
>>>>> addressed. If you are not the intended recipient or email appears
>>>>> to have been sent to you by error, you are not authorised to
>>>>> access, read, disclose, copy, use or otherwise deal with it. If
>>>>> you have received this e-mail in error, please notify us
>>>>> immediately at mail to: [EMAIL PROTECTED] and delete this mail
>>>>> from your records.
>>>>>
>>>>> This is to notify that Majoris Systems Pvt Limited shall have no
>>>>> liability or obligation, legal or otherwise, for any errors,
>>>>> omissions, viruses or computer problems experienced as a result of
>>>>> this transmission since data over the public Internet cannot be
>>>>> guaranteed to be secure or error-free.
>>>>>
>>>>
>>>>
>>>
>> .
>>
>
