• 迟到的一笔 php 5 apache 2.2 webservice 创建与配置


    php 5  apache 2.2   webservice 创建与配置   

    测试工具:wsCaller.jar  (此文是给java程序调用的webservice)

    提示:要运行wsCaller.jar 要选安装jdk 如果没有安装jdk wsCaller.jar 会以压缩包的形式显示

    1 webservice 要用到的接口

    <?php
    class service
    { 
    	function add($a,$b){
    		$c=$a+$b;
    		return $c;
    	}
    	function str($string){
    		return $string;
    	}
    }
     
    //require('cls_mysql.php');
    //$db = new cls_mysql('localhost', 'root', 'root', test_db');		
    //$db = new cls_mysql('211.103.156.227:3306', 'root', 'txtx', test_db');		
    //'testwsdl.wsd需要在后面采用Zend Studio生成。
    $server=new SoapServer('testwsdl.wsdl',array('uri' => 'http://webserver.com/','encoding'=>'utf-8','soap_version' => SOAP_1_2 ));
    $server->setClass("service");
    $server->handle();
    ?>
    

    2.生成wsdl文件

    菜单中

    File--àExport---àphp    选中 “wsdl file” 然后下一步 (图1


    File name wsdl 文件所在的位置

    Exported files 下面的文件是你上面刚刚创建的php文件(接口文件)

    Classes 下面的service 前面的勾要打上

    URL 中填写接口文件的访问地址 (如:http://webserver.com/rpcservice.php


    点击global settings 出现下图(图3

    选择RPC – Oriented

    然后点击 ok  在点击 “Finish”


    出现下图(图4


    最后一步就是给 每个参数一个合理的类型(下图)

    然后保存 

    到此 wsdl文件已经生成

    访问路径  http://webserver.com/testwsdl.wsdl  (会出现下面内容)

    如果不出现 则要配置apache 使其支持xml

    注: 不要用chrome 打开wsdl文件 ,可能会显示不正常 (可以用ie firfox



    测试是否可以成功调用

    测试工具

    wsCaller.jar

    注:必需安装JDK 才能运行wsCaller.jar  请不要解压wsCaller.jar

     

    如果不能正确返回信息 可直接访问你的php 看看会不会报错

    (本例http://webserver.com/rpcservice.php

     

    Php 要支持 soap

    如果php 版本是5.X 编辑 php.ini

    extension=php_soap.dll  (添加 如果存在则去掉注释)

    重启一下apache

    apache 要注意这个文件 mime.types

     

    函数添加新参数

    找到message name=”函数名  中直接复制一下并把参数改一下参数名

    WSDL文件


    Php接口文件

    function add($a,$b,$e){
    	$c=$a+$b+$e;
    	return $c;
    }
    

    注:$e 就是wsdl文件中的 c 参数  

    添加新的函数

    WSDL复制代码就行; PHP写出对应的函数 (看一下选中的部分 其实就是复制了一下add 这个函数 并且直接粘贴在它下面就可以)  下面以 添加add_bak 函数为例

    WSDL

    1.复制message 标签


    2.复制 portType 中的标签


    3.复制binding 标签内容




    PHP

    function add_bak($a,$b,$e){
    	$c=$a+$b-$e;
    	return $c;
    }
    

    测试结果

    add_bak 函数


    add 函数



    其它函数就不一一测试了截图了

    如果有不对的地方,请指出 谢谢

  • 相关阅读:
    11.菜单(一)
    线性表之顺序存储详解
    SVN 撤回已提交的代码
    线性表1
    顶层父类
    异常类之派生类
    new和delete重载
    异常类之基类
    Qt中多线程问题
    智能指针实例
  • 原文地址:https://www.cnblogs.com/qingfeng2010/p/1940397.html
Copyright © 2020-2023  润新知