Hi Everybody We have used web services using the axis implementation on one of our projects. Among other things the web services served as a bridge between a .NET client and a J2EE backend and is actually working quite well. But anyway, during the implementation of the project some 'problems' popped up, and we still do not have a satisfactory answer to some of them. Since these questions are somewhat 'generic', maybe one of you has come across the same problems ...
1) READ ONLY FIELDS - A lot of the web services are used to 'browse' through existing data. Most of the 'data' is represented as simple beans. But, some of the fields are - from the business perspective - read only and therefore, e.g. the Java-Java interface does not expose a set method for those fields to avoid a misusage of the interface. Unfortunately, the beans transferred through the web service must be 'real' java beans - with public set/get method - in order to get transferred correctly by the BeanSerializer. We thought about writing our own version of a serializer, but some of the web services are provided to the outside world and understandable we were quite reluctant to provide custom serializers to the rest of the world. The question of course is: Is there a way to 'define' read only methods on the web service itself. The best solution we currently have are server side checks, but unless everything is tested thoroughly problems will popup when already in production. 2) DOCUMENTATION - The Java-Java interface is using javadoc for its documentation which is sufficient. We would of course have liked to 'embed' the documentation of the web service into the web service itself as first of all no one is reading any 'printed' documentation and keeping a separate document up to date is always a real pain and I have never seen it working anyway (beside the big documentation update in the end of a project). 3) WSDL FILE GENERATION - We used wsdd files to deploy the web services. The description of the web service (wsdl) is then provided by axis. We wrote unit test in Java to test the web services. The client side stub is generated from the wsdl file provided by axis. The problem we faced: To generate an up-to-date client stub the web service needs to be deployed in order to access the wsdl file. Though it would have been possible to embed something like this into our build environment/process it is not simple (you need to start the application server, what do you do if there is already an application server running, etc.). Axis provides the java2wsdl tool which should be able to generate an wsdl file from java source. But then, who guarantees that the wsdl file provided by the deployment of the web service is the same as the one generated by java2wsdl? Instead of generating the wsdl file we would have liked to generate the wsdd file! But we have not found a way ... Ok, that's should be enough for the moment. All comments are greatly appreciated! Thanks Alex --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.530 / Virus Database: 325 - Release Date: 10/22/03
