Gene, 

Good questions.  Let me add a few more for you.

Are you going to send/receive RPC/Encoded messages or Document/Literal
messages?

If you develop RPC/Encoded messages (which many people including me do
not recommend) then you will probably use axis' "rpc" programming
style(axis calls these service styles which gets most people confused
with the RPC or Document WSDL style) on the server side.

If you develop Document/Literal web services are you going to use the
"message", "document" or "wrapped" programming style that axis provides?


We develop Document/Literal web services and currently use the "message"
programming style and use the Element[] processMessage(Element[]) method
choice.

This may seem crazy but this is what we do:

Develop the XML schema

Run castor against the schema to generate the java objects.
Add default constructors to castor objects where neccessary.

Create the java interface for the business logic to be performed by the
web service.

Create the implementation of that interface which includes the
processMessage method.

Run Java2WSDL against the castor generated java objects and java
interface to generate a WSDL to start from.  We use the -C option to
include our original schema.

We then fix problems in the WSDL document by hand.

We then run WSDL2Java to make sure that our hand changes are valid.
Since we are using castor and "message" style we throw everything away
that gets generated from WSDL2Java.  We just want to make sure clients
will be able to do this with no problems.

Add the entries in the server-config.wsdd file for our web service and
include our hand generated wsdl.

Pack up the web app and deploy it.


On the server side when our processMessage receives an Element[] we look
at the "wrapper" element which is the root element to know which
business function to call.  The element array then gets unmarshalled to
a castor object and sent to the appropriate method using reflection.


-----Original Message-----
From: Thompson, Eugene [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, November 12, 2003 1:03 PM
To: '[EMAIL PROTECTED]'
Subject: Development cycle (and other) questions

I recently begun developing webservices using the axis tool kit and I've
a
few questions I was hoping someone could shed some light on.
1. What is the "normal" development lifecycle? I've noticed that the
Java2WSDL-WSDL2Java path seems to require a lot of manual intervention.
If
this is the norm, is there a standard pattern people use?
2. When I develop my own types, WDSL2Java recreates them with their
serialization(?) code included, but doesn't include other methods
(alternate
ctors, etc); do I need to merge this new code with my originals? Or is
there
another way of dealing with this (assuming I'm not screwing up to begin
with)?
3. I'm building a webservice that is going to be the basis for a
business
venture. There are many methods/functions that are available to the
clients.
Should these all be packaged within a single service or is it better to
break them up (possibly by category)? Could putting them all in a single
service cause a bottle-neck under high usage or will the axis servlet
deal
with it "correctly"?

Thanks for your input,
Gene

Reply via email to