开发环境是:Eclipse3.6 (java IDE)+ JDK 1.6 + Tomcat 7.0 + Axis2 1.6 + php 5.2.14 (IDE为eclipse-php-helios-SR1-win32.zip)+ apache2.2.15,这些软件随时都在更新,请读者谷歌百度一下到官网下载。
一、在java端编写服务,并利用axis2发布成服务
本文的服务名为sayHi,里面有一个函数sayHello():
package Hi;
publicclass sayHi {
public String sayHello(String user,String info) {
return"Hello, My Friend "+ user + info;
}
}
二、编写php客户端,调用axis2发布的webservice
2.1 下载nusoap.rar,将解压出来的lib文件夹添加到工程
2.2 编写客户端php,内容如下:
<?php
require_once ("./lib/nusoap.php");
// 要访问的webservice路径
$NusoapWSDL="http://localhost:8080/axis2/services/sayHi?wsdl";
// 生成客户端对象
$client = new nusoap_client($NusoapWSDL);
//$client->soap_defencoding = 'UTF-8';
//$client->decode_utf8 = false;
// 设置参数(注意:PHP只能以'数组集'方式传递参数)
$param = array( 'user' => '国假不旅游 ',
'info' => ' Welcome to my home!');
// 调用远程方法 'sayHello'为服务中的方法名
//'http://Hi'为wsdl文件中targetNamespace的值
$result = $client->call('sayHello', $param,'http://Hi');
// 显示执行结果
if (!$err=$client->getError()){
echo $result;
}else{
echo $err;
}
?>
三、执行结果为:
Hello, My Friend 国假不旅游 Welcome to my home!