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 相关文章推荐
jq的get传参数在utf-8中乱码问题的解决php版
Jul 23 PHP
PHP提示Notice: Undefined variable的解决办法
Nov 24 PHP
基于PHP Web开发MVC框架的Smarty使用说明
Apr 19 PHP
php简单浏览目录内容的实现代码
Jun 07 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
Oct 30 PHP
php删除左端与右端空格的方法
Nov 29 PHP
PHP函数超时处理方法
Feb 14 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
Oct 16 PHP
PHP count_chars()函数讲解
Feb 14 PHP
PHP中rename()函数的妙用讲解
Feb 28 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
Oct 02 PHP
在TP5数据库中四个字段实现无限分类的示例
Oct 18 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
人族 TERRAN 概述
2020/03/14 星际争霸
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
2014/05/15 PHP
PHP微信开发之二维码生成类
2015/06/26 PHP
php获取开始与结束日期之间所有日期的方法
2016/11/29 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
2010/11/25 Javascript
jquery简单图片切换显示效果实现方法
2015/01/14 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
[07:55]2014DOTA2 TI正赛第三日 VG上演推进荣耀DKEG告别
2014/07/21 DOTA
python检测某个变量是否有定义的方法
2015/05/20 Python
Python中的连接符(+、+=)示例详解
2017/01/13 Python
python查询mysql,返回json的实例
2018/03/26 Python
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
python 将print输出的内容保存到txt文件中
2018/07/17 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
Pycharm中Python环境配置常见问题解析
2020/01/16 Python
python不使用for计算两组、多个矩形两两间的iou方式
2020/01/18 Python
基于python-pptx库中文文档及使用详解
2020/02/14 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
HTML5+WebSocket实现多文件同时上传的实例
2016/12/29 HTML / CSS
找到不普通的东西:Bonanza
2016/10/20 全球购物
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
介绍一下Linux内核的排队自旋锁
2014/08/27 面试题
初中英语教学反思
2014/01/25 职场文书
小学生操行评语大全
2014/04/22 职场文书
公共机构节能宣传周活动总结
2014/07/09 职场文书
委托书的写法
2014/09/16 职场文书
正则表达式拆分url实例代码
2022/02/24 Java/Android
Tomcat弱口令复现及利用
2022/05/06 Servers
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server