axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dennis Sosnoski <...@sosnoski.com>
Subject Re: Recommendations for a new project?
Date Tue, 29 May 2007 23:01:38 GMT
No, Jibx2Wsdl works fine with 1.4.x code and JVMs. The support for Java 
5 features is strictly optional, and just means that if you *are* using 
these features Jibx2Wsdl will make use of the added information.

-- 
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


Michael.Davis@servicecanada.gc.ca wrote:
> 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:dms@sosnoski.com]
>> Sent: Tuesday, May 29, 2007 3:16 PM
>> To: axis-user@ws.apache.org
>> 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
>>
>>
>>
>> Michael.Davis@servicecanada.gc.ca 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:lluporini@gmail.com]
>>>> Sent: Monday, May 28, 2007 1:17 PM
>>>> To: axis-user@ws.apache.org
>>>> 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
>>>>
>>>>
>>>> Michael.Davis@servicecanada.gc.ca escribió:
>>>>     
>>>>         
>>>>> Ok, thanks again
>>>>>
>>>>>     -----Original Message-----
>>>>>     *From:* robert lazarski [mailto:robertlazarski@gmail.com]
>>>>>     *Sent:* Monday, May 28, 2007 12:36 PM
>>>>>     *To:* axis-user@ws.apache.org
>>>>>     *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, *Michael.Davis@servicecanada.gc.ca
>>>>>     <mailto:Michael.Davis@servicecanada.gc.ca>*
>>>>>     <Michael.Davis@servicecanada.gc.ca
>>>>>     <mailto:Michael.Davis@servicecanada.gc.ca>> 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:robertlazarski@gmail.com
>>     
>>>>>             <mailto:robertlazarski@gmail.com>]
>>>>>             *Sent:* Monday, May 28, 2007 12:18 PM
>>>>>             *To:* axis-user@ws.apache.org 
>>>>>       
>>>>>           
>>>> <mailto:axis-user@ws.apache.org>
>>>>     
>>>>         
>>>>>             *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, *Michael.Davis@servicecanada.gc.ca
>>>>>             
>>>>>       
>>>>>           
>>>> <mailto:Michael.Davis@servicecanada.gc.ca>*<Michael.Davis@serv
>>>> icecanada.gc.ca
>>>>     
>>>>         
>>>>>             <mailto:Michael.Davis@servicecanada.gc.ca>> 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: Michael.Davis@servicecanada.gc.ca
>>>>>                 <mailto:Michael.Davis@servicecanada.gc.ca>
>>>>>                 > [mailto:Michael.Davis@servicecanada.gc.ca
>>>>>                 <mailto:Michael.Davis@servicecanada.gc.ca>]
>>>>>                 > Sent: Monday, May 28, 2007 11:44 AM
>>>>>                 > To: axis-user@ws.apache.org
>>>>>                 <mailto:axis-user@ws.apache.org>
>>>>>                 > 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:
>>>>>                 axis-user-unsubscribe@ws.apache.org
>>>>>                 <mailto:axis-user-unsubscribe@ws.apache.org>
>>>>>                 > For additional commands, e-mail:
>>>>>                 axis-user-help@ws.apache.org
>>>>>                 <mailto:axis-user-help@ws.apache.org>
>>>>>                 >
>>>>>                 >
>>>>>
>>>>>                 
>>>>>       
>>>>>           
>> ---------------------------------------------------------------------
>>     
>>>>     
>>>>         
>>>>>                 To unsubscribe, e-mail:
>>>>>                 axis-user-unsubscribe@ws.apache.org
>>>>>                 <mailto:axis-user-unsubscribe@ws.apache.org>
>>>>>                 For additional commands, e-mail:
>>>>>                 axis-user-help@ws.apache.org
>>>>>                 <mailto:axis-user-help@ws.apache.org>
>>>>>
>>>>>
>>>>>
>>>>>       
>>>>>           
>> ---------------------------------------------------------------------
>>     
>>>> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>>>> For additional commands, e-mail: axis-user-help@ws.apache.org
>>>>
>>>>
>>>>     
>>>>         
>>>       
>> ---------------------------------------------------------------------
>>     
>>> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>>> For additional commands, e-mail: axis-user-help@ws.apache.org
>>>
>>>   
>>>       
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> For additional commands, e-mail: axis-user-help@ws.apache.org
>>
>>
>>     
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>
>   

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Mime
View raw message