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 一元分词算法
Nov 30 PHP
php学习之运算符相关概念
Jun 09 PHP
解析dedecms空间迁移步骤详解
May 15 PHP
请离开include_once和require_once
Jul 18 PHP
PHP查询网站的PR值
Oct 30 PHP
php删除左端与右端空格的方法
Nov 29 PHP
php中ob_flush函数和flush函数用法分析
Mar 18 PHP
学习php设计模式 php实现桥梁模式(bridge)
Dec 07 PHP
Yii2实现让关联字段支持搜索功能的方法
Aug 10 PHP
thinkPHP订单数字提醒功能的实现方法
Dec 01 PHP
Laravel validate error处理,ajax,json示例
Oct 25 PHP
eval(cmd)与eval($cmd)的区别与联系
Jul 07 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代码(抓取网页中的邮箱地址)
2012/07/17 PHP
PHP四大安全策略
2014/03/12 PHP
PHP中返回引用类型的方法
2015/04/03 PHP
thinkPHP查询方式小结
2016/01/09 PHP
Thinkphp3.2.3分页使用实例解析
2016/07/28 PHP
php中this关键字用法分析
2016/12/07 PHP
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
js中的referrer返回上一页使用介绍
2013/09/26 Javascript
JS获取当前网址、主机地址项目根路径
2013/11/19 Javascript
Firefox下无法正常显示年份的解决方法
2014/09/04 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
2015/04/28 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
jQuery实现ToolTip元素定位显示功能示例
2016/11/23 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
2019/09/23 Javascript
vue+element实现图片上传及裁剪功能
2020/06/29 Javascript
[08:29]DOTA2每周TOP10 精彩击杀集锦vol.7
2014/06/25 DOTA
基于Django模板中的数字自增(详解)
2017/09/05 Python
PyQt4实时显示文本内容GUI的示例
2019/06/14 Python
python tkinter实现连连看游戏
2020/11/16 Python
下列程序在32位linux或unix中的结果是什么
2014/03/25 面试题
本科生学习总结的自我评价
2013/10/02 职场文书
翻译专业应届生求职信
2013/11/23 职场文书
写给女朋友的道歉信
2014/01/08 职场文书
2014年五四青年节演讲稿范文
2014/04/22 职场文书
技术负责人任命书
2014/06/05 职场文书
拾金不昧锦旗标语
2014/06/27 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS
Python中npy和mat文件的保存与读取
2022/04/24 Python