Tuesday, October 15, 2002

WS DevCon: Glen Daniels: Apache Axis
Apart from good info on history of Apache project and the reasons behind open-source nature of Axis Glen gave an introduction to Axis architecture.


It sounded like Axis has a simple and elegant pipeline-processing type architecture where a SOAP message flows though a series of ?handlers?. Handlers can modify the message as it flows though and can also add or get name/value pairs (or properties) in order to communicate with other handlers. The whole thing is pretty extensible meaning that users can create their own handlers and plug them in various places in the pipeline.


Amongst open issues Glen talked about difficulty in describing a SOAP error (fault). So I?ve wondered if there?s a way to marshal exception object within SOAP?s fault code? The simple answer would be to XML-serialize exception object on the server, pack it in fault code and re-throw it on the client side. That led to a hallway conversation with Steve Loughran who kindly answered by essentially saying ?It?s more complicated than you think!?. Steve pointed out that such technique will not really interoperate because CLR function call does not prescript the kind of exception it could throw. So .NET web service can potentially throw any kind of exception, while client-side Java code must know in advance which exception can be thrown by a function (via ?throws? keyword). There seem to be nothing in WSDL to describe how the error would be reported. Looking forward to learning how to do this right.