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]
