delphi 调用axis2客户端

来源:互联网 发布:淘宝秒杀自动刷新 编辑:程序博客网 时间:2024/04/28 02:25
下午在用delphi 
测试webservice 是出现了问题,根据axis2的wsdl文件,不能成功生成接口,最初,我一直以为是发布的接口不对,将服务端程序检查修改了很多遍,始终没有解决,才想到可能是不兼容,毕竟,delphi7发布的时候还没有axis2。为此还愁了很久,甚至想到自己写个wsdl 用来发布,可惜不熟悉,没成功。后来突然想到,delphi 里用到的其实只是一个接口,在调用的时候可能还需要用到服务名,端口,URL,这些都是可以直接在发布的wsdl里找到。然后我直接用了从xFire发布的wsdl导出了一个接口(接口方法都是一样的,我只是用了两种不同的方式来发布),在调用的时候按照axis2服务的参数配置服务名,端口,RUL. 结果是然成功调用了。看来我的理解还是不够深入,要不完全可以很快想到的。
  WSDL 应该是统一的标准,如果出现不兼容,应该主要是版本的原因,后来的版本中增加了一些新的规范。
  主要五部分: Secham  一些类型的定义;消息;端口;绑定;服务;
  另:String有个很好用的函数splite,在分割字符串时支持正则表达式。这对解析文档之类的可是特别好用。下面是简单代码:
      String ss = "30+3*(4-2.3)-3+10/1";
      String regex ="(?<=[+/*()-])|(?=[+/*()-])"; 
    // ?匹配符;<=左联;= 右联;|或操作;[] 通配的字符;[] 里定义分割用的字符。
      System.out.println(regex);
      String[] sss = ss.split(regex);
      for (int i = 0; i <sss.length; i++) {
         System.out.println(sss[i]);
      }
   结果: 将ss 中数据和运算符完全分开 30;+;3;*;(;4……
       说是比较抽象,最后运行几次试试,就知道是怎么回事了。
0 0