Discuz教程网

PHP5 apache 2.2 webservice 创建与配置(java)

[复制链接]
authicon dly 发表于 2011-8-31 12:22:05 | 显示全部楼层 |阅读模式
php 5 apache 2.2 webservice 创建与配置
测试工具:wsCaller.jar (此文是给java程序调用的webservice)
提示:要运行wsCaller.jar 要选安装jdk 如果没有安装jdk 则wsCaller.jar 会以压缩包的形式显示
1 写webservice 要用到的接口
代码如下:

  1. <?php
  2. class service
  3. {
  4. function add($a,$b){
  5. $c=$a+$b;
  6. return $c;
  7. }
  8. function str($string){
  9. return $string;
  10. }
  11. }
  12. //require('cls_mysql.php');
  13. //$db = new cls_mysql('localhost', 'root', 'root', test_db');
  14. //$db = new cls_mysql('211.103.156.227:3306', 'root', 'txtx', test_db');
  15. //'testwsdl.wsd需要在后面采用Zend Studio生成。
  16. $server=new SoapServer('testwsdl.wsdl',array('uri' => 'http://webserver.com/','encoding'=>'utf-8','soap_version' => SOAP_1_2 ));
  17. $server->setClass("service");
  18. $server->handle();
  19. ?>
复制代码


2.生成wsdl文件
菜单中
File--àExport---àphp 选中 “wsdl file” 然后下一步 (图1
20110127223939129.png

File name wsdl 文件所在的位置
Exported files 下面的文件是你上面刚刚创建的php文件(接口文件)
Classes 下面的service 前面的勾要打上
URL 中填写接口文件的访问地址 (如:http://webserver.com/rpcservice.php
20110127223939420.jpg

点击global settings 出现下图(图3
选择RPC – Oriented
然后点击 ok 在点击 “Finish”
20110127223939644.jpg

出现下图(图4)
20110127223939521.jpg

最后一步就是给 每个参数一个合理的类型(下图)
然后保存
到此 wsdl文件已经生成
20110127223939298.jpg
访问路径 http://webserver.com/testwsdl.wsdl (会出现下面内容)
如果不出现 则要配置apache 使其支持xml
注: 不要用chrome 打开wsdl文件 ,可能会显示不正常 (可以用ie firfox
20110127223940568.jpg


测试是否可以成功调用
测试工具
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
20110127223940331.jpg

函数添加新参数
找到message name=”函数名中直接复制一下并把参数改一下参数名
WSDL文件
20110127223940932.jpg
<!--[endif]-->
Php接口文件
  1. function add($a,$b,$e){
  2. $c=$a+$b+$e;
  3. return $c;
  4. }
复制代码

注:$e 就是wsdl文件中的 c 参数
添加新的函数
WSDL就行; PHP写出对应的函数 (看一下选中的部分 其实就是复制了一下add 这个函数 并且直接粘贴在它下面就可以) 下面以 添加add_bak 函数为例
WSDL
1.复制message 标签
20110127223940156.jpg

2.复制 portType 中的标签
20110127223940572.jpg

3.复制binding 标签内容
20110127223940772.jpg
PHP
代码如下:

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



测试结果
add_bak 函数
20110127223940958.jpg
add 函数
20110127223940951.jpg

其它函数就不一一测试了截图了
如果有不对的地方,请指出 谢谢





上一篇:PHP小型企业库存管理系统的设计与实现代码
下一篇:PHP 图片文件上传实现代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 05:13

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表