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


Posted in PHP onJanuary 27, 2011

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

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

 

File name wsdl 文件所在的位置

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

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

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

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

 

点击global settings 出现下图(图3

选择RPC ? Oriented

然后点击 ok  在点击 “Finish”

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

 

出现下图(图4

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

 

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

然后保存 

到此 wsdl文件已经生成

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

 

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

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

注: 不要用chrome 打开wsdl文件 ,可能会显示不正常 (可以用ie firfox<?XML:NAMESPACE PREFIX = O />

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

 


测试是否可以成功调用

测试工具

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

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

 

函数添加新参数

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

WSDL文件

php5 apache 2.2 webservice 创建与配置(java)
<!--[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 标签

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

 

2.复制 portType 中的标签

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

 

3.复制binding 标签内容

php5 apache 2.2 webservice 创建与配置(java)
PHP

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


测试结果

add_bak 函数

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

add 函数

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

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

PHP 相关文章推荐
一个用mysql_odbc和php写的serach数据库程序
Oct 09 PHP
一步一步学习PHP(7) php 字符串相关应用
Mar 05 PHP
php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
May 16 PHP
PHP仿盗链代码
Jun 03 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
Jul 01 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
Jul 01 PHP
php strrpos()与strripos()函数
Aug 31 PHP
Yii中的relations数据关联查询及统计功能用法详解
Jul 14 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
Sep 30 PHP
PHP中关键字interface和implements详解
Jun 14 PHP
PHP的JSON封装、转变及输出操作示例
Sep 27 PHP
在laravel中使用with实现动态添加where条件
Oct 10 PHP
使用XDebug调试及单元测试覆盖率分析
Jan 27 #PHP
仿AS3实现PHP 事件机制实现代码
Jan 27 #PHP
PHP 命名空间实例说明
Jan 27 #PHP
PHP中利用substr_replace将指定两位置之间的字符替换为*号
Jan 27 #PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
Jan 27 #PHP
PHP中通过加号合并数组的一个简单方法分享
Jan 27 #PHP
PHP中删除变量时unset()和null的区别分析
Jan 27 #PHP
You might like
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
PHP加密解密实例分析
2015/12/25 PHP
PHP对象、模式与实践之高级特性分析
2016/12/08 PHP
关于Mozilla浏览器不支持innerText的解决办法
2011/01/01 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
Angularjs基础知识及示例汇总
2015/01/22 Javascript
JS函数this的用法实例分析
2015/02/05 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
jQuery实现内容定时切换效果完整实例
2016/04/06 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
gulp构建小程序的方法步骤
2019/05/31 Javascript
微信小程序订阅消息(java后端实现)开发
2020/06/01 Javascript
[01:30:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第二场 2月2日
2021/03/11 DOTA
python MySQLdb Windows下安装教程及问题解决方法
2015/05/09 Python
python中virtualenvwrapper安装与使用
2018/05/20 Python
python中 * 的用法详解
2019/07/10 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
JSP&Servlet技术面试题
2015/05/21 面试题
数学教学随笔感言
2014/02/17 职场文书
劳动竞赛活动方案
2014/02/20 职场文书
门市房租房协议书
2014/12/04 职场文书
运动会广播稿100字
2015/08/19 职场文书
读后感怎么写?书写读后感的基本技巧!
2019/12/10 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript
详解mysql三值逻辑与NULL
2021/05/19 MySQL
Windows安装Anaconda3的方法及使用过程详解
2021/06/11 Python