Java web service methods that return multi-dimensional data


XML & Web services: Java web service methods that return multi-dimensional data

  1. I'm building some Java web services under Apache Axis.

    I have a situation where one of my web service methods is supposed to return a page of data. The page is normally two dimensional in nature, with a variable number of page rows and a variable number of page columns. Something like....

        User Name Age Salary Date of birth
        --------- ---- ------ --------------
         Fred Smith 40 10,000 11/11/90
         Joe Bloggs 36 21,000 09/09/89
         Andy Brown 21 10,000 11/11/90
         Tom Brown 50 10,000 11/11/90
    The number of rows and the column mix can vary from call to call, also on oocassion each 'cell' in this 2 dimensional structure can also have its own sub properties.

    Currently my web service returns this as a XML DOM Element tree, like...

       public Element getData(int aStartRow,
                              int aMaxEntries,
                              int[] aResultSetPropIDs);

    In my Java class code I simply build and return a custom DOM Element tree to represent this 2 dimensional structure, easy.

    But this causes lots of problems for web service clients, as they have to start messing about with alternate encoding style settings to read back the XML DOM tree.

    Is there a better mainstream approach to retrieving multi dimensional result sets from java based web service methods?

    A solution that doesn't require any special measures by the client?


        .... davout
  2. Last time I checked you couldn't use interfaces as return types in web services because the client won't necessarily be able to create the instance of the class at the other end. Has that changed? If so it's great!

    Too late at night to think of the right solution for your problem, will sleep on it and get back to you!