可能人家觉得太简单了,^_^。开玩笑,是你这个东西太抽象了,上来所有的都要告诉你,很长的SOAP的基本原理你知道?照着网上的教程你先做做,碰到问题再来问啊。实在不行的话,给我发消息^_^。

解决方案 »

  1.   

    就好比要让一个函数有两个返回值,还不许使用数组的形式
    我看是没办法了用soap返回两个数据当然很easy,但在webservice中,解析到这样的返回数据,都是当作Object[]来处理的啊,除非你自己写代码来解析传递的soap消息,而不是使用通用的webservice组件
      

  2.   

    这个问题,俺觉得并不是那么容易解决的。如果返回的是Object,那么客户端就需要作相应的调整了。
      

  3.   

    楼主,还真的没想到你问这么简单的问题。public Date getTimestamp(){
         return new Date();
    }这个方法不是很难理解吧。把它放到服务端就行了。
    如果是要同时传多个参数回来,用Holder方式的参数即可。顺便说一下,根据soap数据样本来写WebService不是正确的开发方法。只需要定好接口就行了。另外说句题外的话,做人要厚道一点,你是来问问题的,不是来考别人的。每一个人都有自己的事情,别人没有义务回答你。在问问题之前最好自己先钻研一端时间,如果你连基本的概念都没看过,那么人家花时间回答了你也未必明白。
      

  4.   

    看了楼上的留言,我几乎无语...可能是我没表达清楚我的意思是,服务端返回两个String变量,分别是random和timestamp。
    据我所知到现在有三种方法:
    1、返回一个数组;
    2、返回一个对象;
    3、返回一个字符串将random和timestamp连接起来但是我的客户端不能够这样去解以上3种方法的返回数据:
    1、根据现在这个工作的“标准”规定,返回的必须是2个字符串变量,分别是random和timestamp,因此,第一种方法不可行;
    2、根据现在这个工作的“标准”规定,客户端不认识返回的是一个对象,而认为返回的是2个字符串变量,如果返回的是对象,客户端没有代码处理,因此第二个方法也不可行;
    3、根据现在这个工作的“标准”规定,返回的必须是2个字符串变量。如果我将两个变量连接起来返回成一个字符串,客户端会认为我少返回了1个字符串变量。也不可行。最后我实在找不到可行的方法了,才来这里问问高手是否有什么其他的方法,今天中午吃饭忽然想起这样的一个方法,不知道是否可行,请问各位高手:
    axis环境下,在soap消息中返回一个字符串变量(random)之后,利用某种方法在soap消息体里面自定义增加一个新的返回字符串变量(timestamp)。这样客户端就能够取得两个变量。但我不知道这种方法是否可行,或者有没有可能实现。这种方法和楼上说的“根据soap数据样本来写WebService不是正确的开发方法。只需要定好接口就行了。”比较类似。 但是,我也是没办法啊。如果客户端也是让我来开发,我TMD还用得着这样费劲吗?
      

  5.   

    的确很难理解你到底需要什么
    不妨说说按你们的工作“标准规定,客户端将如何来调用你的可以返回两个String的服务?
    如果有代码示例最好不过
      

  6.   

    你说的这个是很基本的功能,一个方法返回多个变量。我在楼上已经说过了,用Holder即可。服务端方法是这样写的。public int getTimestamp(StringHolder timestamp, StringHolder random){
          timestamp.value = new Date().toString();
          random.value = xxxx;
    }这是符合WS标准的写法,任何客户端都会支持的,接受不到那是它客户端写的问题。
      

  7.   

    楼主看看你在服务段将这两个变量写成xml格式的如何啊?
    用xml作为介质传给客户端再解析吧....<Item Name="GetTimeStampReturn" >hello</GetTimeStampReturn>
       <Item Name="RandomReturn" >hello</RandomReturn>
      

  8.   

    回答刚才楼上3位高手:tiger_wkh52741(走走.跑跑.瞧瞧!) :要的就是你写的类似这种效果。不过不是这样,而是:
      <GetTimeStamp soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
       <TimeStamp xsi:type="xsd:string">timestamp</GetTimeStampReturn>
       <Random xsi:type="xsd:string">random</RandomReturn>
      </GetTimeStampResponse>
    客户端解析的方法很简单,就是看GetTimeStamp这个message里面的两个参数:TimeStamp,Random。
    zcjl() :没办法,我们是根据某种不成熟的标准来工作。标准规定服务端返回2个string,客户端get的方法是看返回的soap消息中GetTimeStamp这个message里面的两个参数:TimeStamp,Random。
    usabcd(9号公路上的3名共军) :你说的Holder我确实不知道。如果有这样的东西可以让一个方法返回两个变量,那当然好啊。你给的代码:
    public int getTimestamp(StringHolder timestamp, StringHolder random){
          timestamp.value = new Date().toString();
          random.value = xxxx;
    }
    我真不懂得理解。能否把这个方法的代码给完整:为什么方法类型是int?
    你能说说返回过去给客户端的soap内容吗?客户端一定能够解析吗?
      

  9.   

    给你的这个方法已经很完整了。把xxxx换成有一个随机字符串就可以了。
    方法类型你不用关心,只要返回2个值就行了。
    SOAP内容你可以在做的过程中调试出来。
      

  10.   

    方法类型int啊,兄台,你的代码里面连return都没有。有没有搞错