Thanks Dennis,

That's very helpful. I looked up jibx2wsdl, and found that it "has support for 
Java 5 enumerations and generic collections". Does that mean that Java 5 is 
required? I have to stick with Java 1.4.2 for now because working for the 
Canadian government means working amongst glaciers and dinosaurs!

cheers
md

> -----Original Message-----
> From: Dennis Sosnoski [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, May 29, 2007 3:16 PM
> To: [email protected]
> Subject: Re: Recommendations for a new project?
> 
> 
> Hi Michael,
> 
> There are no magic bullets when it comes to doing WSDL. 
> Contract-first 
> is great in theory, and is pretty much the only way to do things in 
> cases where you're dealing with different groups in 
> developing services 
> to be used organization wide. However, the tools that are 
> available to 
> support editing WSDLs and schemas are really very primitive, and you 
> need to have a good understanding of what you're doing in 
> order to make 
> effective use of these tools. For WSDL this isn't too bad, 
> but schema is 
> very complex and has a steep learning curve. So if you want to do 
> contract-first development correctly, expect to spend a 
> couple of weeks 
> on researching and learning the basics of schema beforehand.
> 
> Think of it this way - would you sign a contract that was 
> written in a 
> language you couldn't read, under the legal system of a country you 
> weren't familiar with? If the answer is "no", then you should 
> expect to 
> have to learn WSDL and schema regardless of whether you're using 
> "contract-first" or "code-first" service development.
> 
> There's a lot of confusion over just what is meant by code-first vs. 
> contract-first development. I saw a recent posting on this list that 
> pointed at the Spring (mis)information on this topic, which 
> assumed that 
> code-first meant the WSDL and schema was effectively always generated 
> on-the-fly from the current code, so that any time the code 
> changed the 
> WSDL and schema would also change. That's effectively what 
> was done by 
> the deprecated rpc/enc style of SOAP, and I agree completely 
> that this 
> is unworkable for any serious enterprise use.
> 
> I'd define code-first differently, to say that it means you 
> start with 
> template code and use that to generate a WSDL and schema definition, 
> which can then be used directly or modified as appropriate. 
> But whether 
> used directly or modified, what you end up with is a WSDL and schema 
> that are "fixed" definitions for the service (meaning that 
> they are part 
> of the service contract, and changing these becomes a service 
> versioning 
> issue). Based on what I've seen this is actually the approach 
> used for 
> the majority of real-world web service development. The 
> Jibx2Wsdl tool 
> (http://www.sosnoski.com/jibx-wiki/space/axis2-jibx/jibx2wsdl) is 
> designed around this principle, and if you're considering 
> using JiBX you 
> may want to look into using the tool since it handles JiBX binding 
> generation, as well as WSDL and schema generation, from 
> existing code. 
> The current version of the tool is an early release, and I 
> expect do an 
> update within the next week.
> 
>   - Dennis
> 
> -- 
> Dennis M. Sosnoski
> SOA and Web Services in Java
> Axis2 Training and Consulting
> http://www.sosnoski.com - http://www.sosnoski.co.nz
> Seattle, WA +1-425-939-0576 - Wellington, NZ +64-4-298-6117
> 
> 
> 
> [EMAIL PROTECTED] wrote:
> > To me, Contact-First makes perfect sense. I haven't heard 
> the Axis experts say "No No No!" yet, so I figure I'll go with that.
> >
> > thanks
> > md
> >
> >   
> >> -----Original Message-----
> >> From: Luis Mariano Luporini [mailto:[EMAIL PROTECTED]
> >> Sent: Monday, May 28, 2007 1:17 PM
> >> To: [email protected]
> >> Subject: Re: Recommendations for a new project?
> >>
> >>
> >> Michael:
> >>
> >>        I'm having this kind of questions as you stated in 
> your mails.
> >> And think, probably, the better one would be to go with a
> >> 'Contract-First' approach to keep the environment 
> controlled when one
> >> needs to implement features/changes. This way your clients 
> >> will be happy
> >> to get a consistent WSDL across releases.
> >>
> >>        But anyway I would like to hear your points on this. 
> >> Please, let
> >> know if you come to some conclusions.
> >>
> >>        Thanks,
> >>
> >> Luis
> >>
> >>
> >> [EMAIL PROTECTED] escribió:
> >>     
> >>> Ok, thanks again
> >>>
> >>>     -----Original Message-----
> >>>     *From:* robert lazarski [mailto:[EMAIL PROTECTED]
> >>>     *Sent:* Monday, May 28, 2007 12:36 PM
> >>>     *To:* [email protected]
> >>>     *Subject:* Re: Recommendations for a new project?
> >>>
> >>>     JIBX has its own site and docs - I'd follow those to 
> get on the
> >>>     right track.
> >>>
> >>>     Robert
> >>>
> >>>     On 5/28/07, [EMAIL PROTECTED]
> >>>     <mailto:[EMAIL PROTECTED]>*
> >>>     <[EMAIL PROTECTED]
> >>>     <mailto:[EMAIL PROTECTED]>> wrote:
> >>>
> >>>         Thanks very much. I am using Hibernate and 
> >>>       
> >> fortunately I have
> >>     
> >>>         complete control over the schema, so I'll check out jibx.
> >>>          
> >>>         So assuming I'm creating my own wsdl and will use 
> >>>       
> >> jibx, would
> >>     
> >>>         you generate code using wsdl2java or would you start from
> >>>         scratch? I suspect that starting from scratch 
> will allow for
> >>>         cleaner and simpler code in the long run, because as the
> >>>         number of operations grows then there will be more
> >>>         opportunities for refactoring code rather than 
> >>>       
> >> having lots of
> >>     
> >>>         redundant generated code, am I right?
> >>>          
> >>>         cheers
> >>>         md
> >>>
> >>>             -----Original Message-----
> >>>             *From:* robert lazarski 
> [mailto:[EMAIL PROTECTED]
> >>>             <mailto:[EMAIL PROTECTED]>]
> >>>             *Sent:* Monday, May 28, 2007 12:18 PM
> >>>             *To:* [email protected] 
> >>>       
> >> <mailto:[email protected]>
> >>     
> >>>             *Subject: *Re: Recommendations for a new project?
> >>>
> >>>             From what you say I'd go with ADB 
> databinding, creating
> >>>             and validating your WSDL via eclipse's WST. If you are
> >>>             using hibernate / jdo and such, I'd consider 
> >>>       
> >> jibx. If you
> >>     
> >>>             have complex schemas out of your control - 
> >>>       
> >> which is often
> >>     
> >>>             the case for me - use xmlbeans. Either way, 
> >>>       
> >> starting with
> >>     
> >>>             the WSDL for a 'contract first' approach is 
> often a good
> >>>             choice.
> >>>
> >>>             If you've never done single sign on before I 
> >>>       
> >> recommend CAS:
> >>     
> >>>             http://www.ja-sig.org/products/cas/
> >>>
> >>>             See rampart for ws-security - available for 
> >>>       
> >> axis2 1.1.1 .
> >>     
> >>>             Search the archives for questions related to 
> >>>       
> >> soap headers
> >>     
> >>>             as the subject comes up frequently.
> >>>
> >>>             HTH,
> >>>             Robert
> >>>
> >>>             On 5/28/07, [EMAIL PROTECTED]
> >>>             
> >>>       
> >> <mailto:[EMAIL PROTECTED]>*<[EMAIL PROTECTED]
> >> icecanada.gc.ca
> >>     
> >>>             <mailto:[EMAIL PROTECTED]>> wrote:
> >>>
> >>>                 I forgot to mention, in case it's 
> >>>       
> >> important. I'm using
> >>     
> >>>                 axis2 1.1.1, because due to circumstances 
> beyond my
> >>>                 control, I'm forced to use jdk 1.4.2 and WebSphere
> >>>                 6.1, and I couldn't get axis2 1.2 to work 
> with that
> >>>                 combination.
> >>>
> >>>                 md
> >>>
> >>>                 > -----Original Message-----
> >>>                 > From: [EMAIL PROTECTED]
> >>>                 <mailto:[EMAIL PROTECTED]>
> >>>                 > [mailto:[EMAIL PROTECTED]
> >>>                 <mailto:[EMAIL PROTECTED]>]
> >>>                 > Sent: Monday, May 28, 2007 11:44 AM
> >>>                 > To: [email protected]
> >>>                 <mailto:[email protected]>
> >>>                 > Subject: Recommendations for a new project?
> >>>                 >
> >>>                 >
> >>>                 > Hi,
> >>>                 >
> >>>                 > I apologize in advance for a slightly 
> rambling and
> >>>                 unfocussed
> >>>                 > request for advice. The short questions 
> >>>       
> >> are: if you are a
> >>     
> >>>                 > really experienced Axis user, and are starting a
> >>>                 brand new
> >>>                 > project, would you write everything from scratch
> >>>                 using Axiom?
> >>>                 > Would you use one of the data binding 
> >>>       
> >> libraries such
> >>     
> >>>                 as JiBX?
> >>>                 > Would you maintain your wsdl/xsd files by hand?
> >>>                 >
> >>>                 > Now for the long version:
> >>>                 >
> >>>                 > I'm new to Axis and web services, but have been
> >>>                 programming
> >>>                 > Java for several years.
> >>>                 >
> >>>                 > I'm working on a simple web service that 
> >>>       
> >> provides a
> >>     
> >>>                 > single-sign-on for our organization's 
> >>>       
> >> applications.
> >>     
> >>>                 The first
> >>>                 > operation I'm working on is very simple 
> - it just
> >>>                 takes three
> >>>                 > strings (user name, password and 
> >>>       
> >> application name) and
> >>     
> >>>                 > returns a string containing a list of 
> permissions.
> >>>                 >
> >>>                 > It works fine, but I've implemented it using the
> >>>                 easiest way
> >>>                 > possible. I just wrote a POJO class 
> with a method
> >>>                 >
> >>>                 > String authenticate( String, String, String )
> >>>                 >
> >>>                 > and ran Java2Wsdl using the basic 
> >>>       
> >> defaults. I don't
> >>     
> >>>                 > explicitly use any of the Axis apis.
> >>>                 >
> >>>                 > However, looking to the future, I can see 
> >>>       
> >> where I'll
> >>     
> >>>                 > eventually need to take more control, for 
> >>>       
> >> example I might
> >>     
> >>>                 > want to manipulate the SOAP headers and/or use
> >>>                 WS-Security,
> >>>                 > and I'll probably eventually want to pass 
> >>>       
> >> around more
> >>     
> >>>                 > complicated structures than strings.
> >>>                 >
> >>>                 > So I'm trying to determine the best 
> strategy. I'm
> >>>                 slightly
> >>>                 > bewildered with all of the choices:
> >>>                 >
> >>>                 > 1. Should I write the clients and services from
> >>>                 scratch using
> >>>                 > the axiom libraries, or generate the stubs and
> >>>                 skeletons?
> >>>                 >
> >>>                 > 2. If I write them from scratch, and 
> >>>       
> >> already have my own
> >>     
> >>>                 > model classes (representing such things 
> as users),
> >>>                 should I
> >>>                 > use one of the data binding libraries 
> >>>       
> >> such as XMLBeans or
> >>     
> >>>                 > JiBX? If so, which one?
> >>>                 >
> >>>                 > 3. Should I be maintaining my wsdl file 
> >>>       
> >> (and included
> >>     
> >>>                 schema
> >>>                 > files) by hand (or using an appropriate 
> >>>       
> >> editing tool) in
> >>     
> >>>                 > order to maitain control over the various 
> >>>       
> >> types, as
> >>     
> >>>                 opposed
> >>>                 > to generating it using Java2Wsdl every time the
> >>>                 interface changes?
> >>>                 >
> >>>                 > I can see that the Axis developers have 
> >>>       
> >> tried hard to
> >>     
> >>>                 provide
> >>>                 > a spectrum of methods and interfaces from the
> >>>                 easy/simple to
> >>>                 > the complex/powerful. But I'd be very 
> >>>       
> >> interested to
> >>     
> >>>                 know what
> >>>                 > methods a really experienced Axis user 
> would use.
> >>>                 >
> >>>                 > Many thanks,
> >>>                 > Michael Davis
> >>>                 >
> >>>                 > 
> >>>       
> >> 
> ---------------------------------------------------------------------
> >>     
> >>>                 > To unsubscribe, e-mail:
> >>>                 [EMAIL PROTECTED]
> >>>                 <mailto:[EMAIL PROTECTED]>
> >>>                 > For additional commands, e-mail:
> >>>                 [EMAIL PROTECTED]
> >>>                 <mailto:[EMAIL PROTECTED]>
> >>>                 >
> >>>                 >
> >>>
> >>>                 
> >>>       
> >> 
> ---------------------------------------------------------------------
> >>     
> >>>                 To unsubscribe, e-mail:
> >>>                 [EMAIL PROTECTED]
> >>>                 <mailto:[EMAIL PROTECTED]>
> >>>                 For additional commands, e-mail:
> >>>                 [EMAIL PROTECTED]
> >>>                 <mailto:[EMAIL PROTECTED]>
> >>>
> >>>
> >>>
> >>>       
> >> 
> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >>     
> >
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >   
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to