SOAP的规范是直接支持数组的,包括2维数组,换句话说,
你可以直接在RPC的接口中使用数组作为参数或返回值,就象你平常做普通的函数调用一样。
一切与xml有关的东西都由SOAP  SDK 给你在后台做好了。
但是编写个户端的调用程序时要指明关于数组的序列化器。
服务端并不需要指明(假设这些数组里都是简单类型)

解决方案 »

  1.   

    usabcd() 大哥,可否举个例子!我主要是不知道调用程序要怎样才能得到返回值(数组内东西这么多),
    而Serializer->writeString("aaa"); ,这个像这样只能得到一个数呀???????????????????
      

  2.   

    不好意思,俺对C不熟,没用过C++的SOAP SDK, 不过我觉得你可以自己一步步来试,
    先全部用C(包括服务端)试一个简单数组,再试复杂的数组,
    试完后再用C的客户端和Axis服务端对接,也是先试一个简单的,
    再试复杂的,我想应该没问题的。
      

  3.   

    用VB调用好像就跟JAVA调用差不多,
    但是VC调用却又这么难,
    主要是用这个Serializer每次就只能发一个参数,
    不能直接调用方法!
    试一个简单数组,都不知道怎么试,
    唉,,,,。
      

  4.   

    饭要一口口吃,我的意思是,你必须先要对某一端语言的Web Service开发比较熟悉。
    比如,如果你是负责C++客户端的开发,如果你是负责C++部分,应该集中精力把C++本身的
    Web Service框架弄清楚。先用C++同时写出客户端与服务端代码。(这个服务端可以是个空的,没有业务逻辑,用于测试你的SOAP框架代码)。这样你才可以保证你的客户端的本身的代码正确。然后再在与Java 的服务端对接时做细微的调整。我的同事使用的C++ SOAP SDK是可以传任意数组的,我用Java跟他对接很容易,没费什么功夫。有点纳闷,一个人的精力有限,你不会说你的老板要你负责从服务端的 EJB 开发到Axis Web Service包装再到客户端C++调用的所有代码吧(这样的老板是不是太抠门了亚,抑或你自告奋勇全揽了?:)
      

  5.   

    谢谢usabcd()的真诚回复;   现在呢,我的情况是这样的,我的程序已经实现了一台机子的客户端(VC程序),
    调用另两台机子的DCOM组件的方法,DCOM里面的方法如: 
    public f(long a[10][10],long b[10][10]),这个程序我已经完全实现了。  另一个方面,我客户端用java, 调用另两台机子weblogic服务器的EJB的方法,
    方法和DCOM一样,像这样形式public f(long a[10][10],long b[10][10]),
    这个也是完全实现了。但现在呢,我用客户端的VC程序调用EJB组件的方法,这个方法就出现了上面的问题?
    我已试过了用VC客户端调用调用基于axis的webservice的方法helloworld,
    但是了如:f(long a[10][10],long b[10][10]),
    这样的方法我就出现上面的问题,不知道怎样定义数组,
    你说“我用Java跟他对接很容易”,可否说说方法???你做的是vc调用ejb吗?