php 5 apache 2.2 webservice 創建與配置
測試工具:wsCaller.jar(此文是給java程序調用的webservice)
提示:要運行wsCaller.jar要選安裝jdk如果沒有安裝jdk則wsCaller.jar會以壓縮包的形式顯示
1寫webservice要用到的接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php classservice { functionadd($a,$b){ $c=$a+$b; return$c; } functionstr($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=newSoapServer('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接口文件
1 2 3 4 |
functionadd($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
1 2 3 4 |
functionadd_bak($a,$b,$e){ $c=$a+$b-$e; return$c; }
|
測試結果
add_bak函數
add函數
其它函數就不一一測試了截圖了
如果有不對的地方,請指出 謝謝