PHP调用JAVA的WebService简单实例


Posted in PHP onMarch 11, 2014

使用PHP调用JAVA语言开发的WebService。
客户端提交两个String类型的参数,服务端返回一个对象类型。
服务端使用AXIS-1.4作为SOAP引擎。客户端为PHP5.2.9,使用NuSOAP作为SOAP引擎。

服务端

对象类

import java.io.Serializable;
public class Person implements Serializable {    
    /**
     * 
     */
    private static final long serialVersionUID = -410186774891162281L;
    private String username;
    private int age;
    private boolean sex;// true:male;false:female
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public boolean getSex() {
        return sex;
    }
    public void setSex(boolean sex) {
        this.sex = sex;
    }
}

服务类
public class UserLogin {
    public Person login(String loginName, String loginPasswd) {
        Person aPerson = new Person();
        if (loginName.equals("laoli") && loginPasswd.equals("111111")) {
            aPerson.setUsername("老李");
            aPerson.setAge(55);
            aPerson.setSex(true);
        } else if (loginName.equals("xiaoli") && loginPasswd.equals("123456")) {
            aPerson.setUsername("小丽");
            aPerson.setAge(23);
            aPerson.setSex(false);
        } else {
            aPerson = null;
        }
        return aPerson;
    }
}

客户端
<?php
/*
 * Created on 2011-10-12
 * Author wanghao
 *
 * package_name/userLoginClient.php
 */
header("Content-Type: text/html;charset=utf-8");
// Pull in the NuSOAP code
require_once ("libs/nusoap.php");
// Create the client instance
$client = new nusoapclient('http://localhost:8080/axis/services/UserLoginWS?wsdl', true);
$client->soap_defencoding = 'utf-8';
$client->decode_utf8 = false;
$client->xml_encoding = 'utf-8';
// Check for an error
$err = $client->getError();
if ($err) {
    // Display the error
    echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
    // At this point, you know the call that follows will fail
}
// Call the SOAP method
$param=array('loginName'=>'laoli', 'loginPasswd'=>'111111');
$result = $client->call('login', $param);
// Check for a fault
if ($client->fault) {
    echo '<h2>Fault</h2><pre>';
    print_r($result);
    echo '</pre>';
} else {
    // Check for errors
    $err = $client->getError();
    if ($err) {
        // Display the error
        echo '<h2>Error</h2><pre>' . $err . '</pre>';
    } else {
        // Display the result
        echo '<h2>Result</h2><pre>';
        print_r($result);
        echo '</pre>';
    }
}
echo '<br>';
$param=array('loginName'=>'xiaoli', 'loginPasswd'=>'123456');
$result = $client->call('login', $param);
// Check for a fault
if ($client->fault) {
    echo '<h2>Fault</h2><pre>';
    print_r($result);
    echo '</pre>';
} else {
    // Check for errors
    $err = $client->getError();
    if ($err) {
        // Display the error
        echo '<h2>Error</h2><pre>' . $err . '</pre>';
    } else {
        // Display the result
        echo '<h2>Result</h2><pre>';
        print_r($result);
        echo '</pre>';
    }
}
?>
PHP 相关文章推荐
PHP insert语法详解
Jun 07 PHP
PHP 字符串编码截取函数(兼容utf-8和gb2312)
May 02 PHP
计算php页面运行时间的函数介绍
Jul 01 PHP
php制作unicode解码工具(unicode编码转换器)代码分享
Dec 24 PHP
php基于GD库画五星红旗的方法
Feb 24 PHP
微信公众平台开发实现2048游戏的方法
Apr 15 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
Mar 15 PHP
thinkphp框架下实现登录、注册、找回密码功能
Apr 06 PHP
php版微信js-sdk支付接口类用法示例
Oct 12 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
Dec 21 PHP
详解PHP防止盗链防止迅雷下载的方法
Apr 26 PHP
PHP+Oracle本地开发环境搭建方法详解
Apr 01 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
Mar 11 #PHP
Yii操作数据库的3种方法
Mar 11 #PHP
php导出excel格式数据问题
Mar 11 #PHP
PHP中对于浮点型的数据需要用不同的方法解决
Mar 11 #PHP
php设置允许大文件上传示例代码
Mar 10 #PHP
php如何解决无法上传大于8M的文件问题
Mar 10 #PHP
php中3种方法删除字符串中间的空格
Mar 10 #PHP
You might like
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
利用php的ob缓存机制实现页面静态化方法
2017/07/09 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
js中有关IE版本检测
2012/01/04 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
angularjs $http实现form表单提交示例
2017/06/09 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
在一般处理程序(ashx)中弹出js提示语
2017/08/16 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
vue两个组件间值的传递或修改方式
2018/07/04 Javascript
Ant Design Pro 之 ProTable使用操作
2020/10/31 Javascript
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
[59:42]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
Python通过Tesseract库实现文字识别
2020/03/05 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
python绘制趋势图的示例
2020/09/17 Python
python之pygame模块实现飞机大战完整代码
2020/11/29 Python
香港时装购物网站:ZALORA香港
2017/04/23 全球购物
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
在求职信中如何凸显个人优势
2013/10/30 职场文书
军训自我鉴定
2013/12/14 职场文书
上班离岗检讨书
2014/01/27 职场文书
上班玩游戏检讨书
2014/02/07 职场文书
售后服务承诺书怎么写
2014/05/21 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
给领导敬酒词
2015/08/12 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
创业计划书之水果店
2019/07/18 职场文书
pytorch中的numel函数用法说明
2021/05/13 Python
python+opencv实现视频抽帧示例代码
2021/06/11 Python
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android