Win a copy of Murach's Python Programming this week in the Jython/Python forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Experiences with Axis  RSS feed

 
John M. Gabriele
Ranch Hand
Posts: 232
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm curious about folks' experiences with Apache Axis.

I just created a small simple web service. One class, deployed as a .jws file, and the client just calls instance methods of the class. No session/persistence. No objects. Just remote function calls. Using Axis this way seems pretty simple.

Writing a client looks to be pretty simple too, but I haven't had to do that yet. It looks like you just:

- use the WSDL2Java program, and

- point it at your MyService.jws?wsdl

- then use the resulting classes/interfaces from your own short hand-written MyClient.java class.
(I outlined that procedure here: http://wiki.apache.org/ws/FrontPage/Axis/WritingYourClient -- in fact, if there's any clarification you can add to that, please let me know; either here or by updating that wiki page)

Anyhow, I'm curious to hear other people's experiences with Axis. My guess is that as soon as you get off the beaten path, the trail gets rocky.

Folks on the ML talk about WSDL sometimes, but I don't understand why -- I thought the whole purpose of Axis was so that you didn't have to touch XML or WSDL anymore -- you could just do RPC and have Axis take care of the details.

No idea about UDDI. The client knows who it'll be talking to, and the web service only expects that one client to be contacting it. At least, that's the way it is for my simple web service.

Any commentary is appreciated.
[ August 05, 2005: Message edited by: John M. Gabriele ]
 
Ulf Dittmer
Rancher
Posts: 42970
73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
A few points:

- Just to clarify: You would retrieve the WSDL file from the URL you mentioned, then point wsdl2java at it, and then work with the resulting classes.

- Working with WSDL means that your client code can use JAX-RPC (e.g.), but to create that client you still would have to use it. But it's as simple as outlined above; I recently created a client with nothing but the WSDL, and wsdl2java created a bunch of classes for apparently very involved credentials passing, but it just worked when given the proper parameters - very impressing.
The code you need to write to access a service could be as short as 3 lines: another 3 lines will give you HTTP Basic Authentication.

- This article talks about using the WSDL part of Axis, and gives you pointers for more research.

- Once you dig into axis a little deeper, migrate away from .jws. You can start with a Java interface that describes your service, and then use java2wsdl to jumpstart your development.

- My impression is that UDDI so far failed to take off, and it's mostly applicable to web services where there is no direct contact between the people who run it and the people who access it: probably a small percentage of all web services currently in existence. You can ignore it for the moment.

- There is a deluge of standards created in the field, way too many to stay on top of. I've found that just using JAX-RPC (if you have a Java client) with WSDL gets me quite far, and securing that with Basic Authentication over HTTPS filled my security needs. YMMV, of course.
 
John M. Gabriele
Ranch Hand
Posts: 232
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
> - Once you dig into axis a little deeper, migrate away from .jws.

Why?

The official docs say to do that, but they really don't go into the reasons why.

> - My impression is that UDDI so far failed to take off, and it's mostly
> applicable to web services where there is no direct contact between the
> people who run it and the people who access it: probably a small percentage
> of all web services currently in existence. You can ignore it for the
> moment.

That's my impression too.
 
Tim West
Ranch Hand
Posts: 539
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
On UDDI, this article on the history of web services says:


(UDDI) emerged to grand fanfare, and its stakeholders succeeded in anointing it into the accepted core of Web services technologies. "SOAP, WSDL and UDDI" was how Web services were described for much of the past two years. Despite this, UDDI has not taken off in practice, and many have begun to question whether it ever will. If it does, it will not likely be with its original ambition.


The article (and its predecessor - the article is the second in a two part series) is really interesting for anyone "late to the game" on Web services.


-Tim
 
Ulf Dittmer
Rancher
Posts: 42970
73
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

> - Once you dig into axis a little deeper, migrate away from .jws.

Why?


It's a bit like the early servlet implementations, where you could put you servlet class in the class path, and use the notation ".../servlet/className" to invoke it, with no setup required.
If it does what you need, great, but you can't do a number of the things that advanced services tend to need, like mapping of complex types, declaration of scope, parameters, namespaces and allowed methods etc. Basically everything that goes into the deployment descriptor can't be done, because you don't have one.
 
John M. Gabriele
Ranch Hand
Posts: 232
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
> The article (and its predecessor - the article is the second in a two
> part series) is really interesting for anyone "late to the game" on Web
> services.

Great link. Thanks. The link to part 1 of the article was broken, so I had
to google for it:
http://www.webservices.org/index.php/ws/content/view/full/2427

Ulf wrote:
> Basically everything that goes into the deployment descriptor can't be
> done, because you don't have one.

Ah. Thanks.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!