A SOAP client registers with a SOAP server: <send me a message when event XYZ occurs>
The client should register: <send me a message AT THIS LOCATION when the event XYZ occurs>
When XYZ occurs, how should the server callback? Is there anything provided as part of the Axis framework?
The server callback to the location that the client specify at his registration. The response of this callback can optionally piggyback an un-registration request of the client.
1. Should this be done out of Axis framework; for example, client may have an HTTP server listening at a registered port and SOAP server does an HTTP POST when the event occurs?
Your description is same as mine and is do-able outside AXIS framework.
2. Is this task easier if the transport is asynchronous, like JMS?
I don't think so. Because soap is transportation agnostic. In both cases, the server need to know where to send back the response. In JMS case, this mean the client specify the return location at the "reply-to" message property.
3. Any other solution which you could suggest (preferably having HTTP transport).
Of course HTTP transport is the only one that gives you inter-operability. But if the reliability of callback is not important, then I would prefer callback over UDP multicast which is more scalable (when you have a lot of subscribers).
Rgds, Ricky
Thanks, Suresh