views:

345

answers:

8

I have this external module of my system and I thought to integrate it with web services. So I wrote the server using annotations (so far so good) and then I used Eclipse (new Web Service Client wizard) to generate the boilerplate code for the client. The result is an ugly bunch of code far from configurable, painful to test and to change. I'm looking for a straightforward API, I don't need attachments, sophysticated data types, complex asynchronous behaviour. So:

  1. are there any other tools to do a better job?
  2. are there different tecniques to write webservices clients (such as annotations)?
  3. shall I use a different way altogether to integrate my external components (such as REST)? Any suggestions on where to start, be this the case?

Looking forward to your advices.

+2  A: 
  1. Axis
  2. XFire/CXF

Both downloads have sample ant build files to generate client jar files.

saugata
+1  A: 

I have used Apache CXF before and found it very good and easy to use.

http://cxf.apache.org/

Wilhelm Kleu
+1  A: 

Have you looked into Apache Axis?

Here is a tutorial on making a web service with it. It might help you.

Creating Bottom Up Web Service via Apache Axis2

Ayrad
+1  A: 

Hessian or the xml version Burlap from Caucho could be used or Spring's HttpInvoker

Karussell
+2  A: 

I'd suggest to have a look at REST. There are plenty of frameworks out there with rest support. For example spring3 has pretty neat support for REST that is not very intrusive. You can get very quick results when you are using spring anyway.

Patrick Cornelissen
+4  A: 

I agree with Patrick, Spring 3 has a RESTServiceTemplate and a WebServiceTemplate that makes it very easy to code and configure interacting with remote web services - it'll even make un/marshalling xml into beans easy. At my company we've had great success with both of them.

To get you started:

http://static.springsource.org/spring-ws/sites/1.5/reference/html/client.html

http://blog.springsource.com/2009/03/27/rest-in-spring-3-resttemplate/

HTH

simonlord
+1  A: 

If you're using (o planning to use) seam, there is a simple HTTP REST implementation:

RESTful HTTP webservices with RESTEasy

volothamp
+1  A: 

I can recommend JAX-RS (Java API for RESTful Web Services, JSR-311) and the Jersey implementation. You'll get a neat RESTful web service up and running in no time.

Check out the Jersey getting started guide.

antonj