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 相关文章推荐
PHP使用者状态管理功能的应用
Oct 09 PHP
PHP开发文件系统实例讲解
Oct 09 PHP
解析获取优酷视频真实下载地址的PHP源代码
Jun 26 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
php微信公众平台开发类实例
Apr 01 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
PHP 输出缓冲控制(Output Control)详解
Aug 25 PHP
php中二分法查找算法实例分析
Sep 22 PHP
PHP依赖注入原理与用法分析
Aug 21 PHP
Laravel 队列使用的实现
Jan 08 PHP
PHP随机数函数rand()与mt_rand()的讲解
Mar 25 PHP
php操作redis数据库常见方法实例总结
Feb 20 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中iconv函数使用方法
2008/05/24 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
php实现读取内存顺序号
2015/03/29 PHP
使用TextRange获取输入框中光标的位
2006/10/14 Javascript
JavaScript 特殊字符
2007/04/05 Javascript
JS支持带x身份证号码验证函数
2008/08/10 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
在JavaScript的正则表达式中使用exec()方法
2015/06/16 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
codeMirror插件使用讲解
2017/01/16 Javascript
jquery仿苹果的时间/日期选择效果
2017/03/08 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
Vue 中的compile操作方法
2018/02/26 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
JS使用cookie保存用户登录信息操作示例
2019/05/30 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
Python编程之属性和方法实例详解
2015/05/19 Python
python 构造三维全零数组的方法
2018/11/12 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
美国折衷生活方式品牌:Robert Graham
2018/07/13 全球购物
什么是测试驱动开发(TDD)
2012/02/15 面试题
《列夫托尔斯泰》教学反思
2014/02/10 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
小王子读书笔记
2015/06/29 职场文书
python glom模块的使用简介
2021/04/13 Python
mysql外连接与内连接查询的不同之处
2021/06/03 MySQL
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
2022/04/13 Java/Android