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开发入门教程之面向对象
Dec 05 PHP
如何在PHP程序中防止盗链
Apr 09 PHP
PHP syntax error, unexpected $end 错误的一种原因及解决
Oct 25 PHP
PHP中鲜为人知的10个函数
Feb 28 PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
php使用curl和正则表达式抓取网页数据示例
Apr 13 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
Jun 12 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
Feb 15 PHP
PHP+Javascript实现在线拍照功能实例
Jul 18 PHP
详解HTTP Cookie状态管理机制
Jan 14 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
Sep 09 PHP
PHP htmlspecialchars() 函数实例代码及用法大全
Sep 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
PHP 5.0对象模型深度探索之绑定
2006/09/05 PHP
PHP5中虚函数的实现方法分享
2011/04/20 PHP
文本链接逐个出现的js脚本
2007/12/12 Javascript
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
setTimeout 不断吐食CPU的问题分析
2009/04/01 Javascript
JS 分号引起的一段调试问题
2009/06/18 Javascript
JavaScript 空位补零实现代码
2010/02/26 Javascript
javascript中的变量作用域以及变量提升详细介绍
2013/10/24 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
web打印小结
2017/01/11 Javascript
jquery中封装函数传递当前元素的方法示例
2017/05/05 jQuery
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
vue实现分页加载效果
2019/12/24 Javascript
jQuery cookie的公共方法封装和使用示例
2020/06/01 jQuery
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
Python实现处理管道的方法
2015/06/04 Python
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
Python实现对象转换为xml的方法示例
2017/06/08 Python
Python的iOS自动化打包实例代码
2018/11/22 Python
Python图像处理之图片文字识别功能(OCR)
2019/07/30 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
判断Threading.start新线程是否执行完毕的实例
2020/05/02 Python
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
特步官方商城:Xtep
2017/03/21 全球购物
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
你所在的项目是如何确定版本号的
2015/12/28 面试题
七年级音乐教学反思
2014/01/26 职场文书
好人好事事迹材料
2014/02/12 职场文书
初中学生评语大全
2014/04/24 职场文书
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang