2种方式,一种是RPC方式,传入一个字段名数组,一个表名,一个字符串条件,返回一个2维数组表示多条记录。是否需要传个页码数过去,需要考虑一下。
另外一种是消息服务方式,就是传入xml作查询条件,返回xml作结果。结构自己设计。
不管用那种但一次返回的记录数不宜太多,如果太多,建议作为数据文件压缩后另行传送。

解决方案 »

  1.   

    返回一个arrayList对象不行吗?
      

  2.   

    ArrayList不好,在跨语言的调用中,最好不要使用Java自己的类,比如集合框架等。
      

  3.   

    将你要返回的一条记录作为一个对象,返回此对象的一个数组。
    比如要返回查询到的职员(EmployeeInfo)的信息,其返回对象如下:
    public class EmployeeRecord {
    private EmployeeInfo[] employeeRecord; //人员信息对象数组
    private PageInfo page;  //分页信息

    public EmployeeRecord(){
    employeeRecord=new EmployeeInfo[0];
    page=new PageInfo();
    }
    /**
     * @return
     */
    public EmployeeInfo[] getEmployeeRecord() {
    return employeeRecord;
    } /**
     * @return
     */
    public PageInfo getPage() {
    return page;
    } /**
     * @param infos
     */
    public void setEmployeeRecord(EmployeeInfo[] infos) {
    employeeRecord = infos;
    } /**
     * @param info
     */
    public void setPage(PageInfo info) {
    page = info;
    }}
      

  4.   

    我的意思是返回什么内容是动态的,比如输入一个可能是
    select a,b,c from table;
    另一个可能是
    select e,f,g from table;
    这样每次的值不一样,每次要返回值的数量与类型不能确定,
    这样的通用该如何用web service来实现?
      

  5.   

    对,字段都是动态的,因为传入的SQL语句是动态的,要访问哪个表,访问哪些字段,是不知道的
      

  6.   

    问题解决得怎么样?
    建议只转XML数据传递。
    在XML定义要查询的项值(比如你说的字段),及要返回的结果,如果有特别要求,定义好格式,返回XML数据集。执行查询客户端(需要调用的不用关心)。