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类
Oct 09 PHP
PHP 定界符 使用技巧
Jun 14 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
Jun 13 PHP
PHP自定session保存路径及删除、注销与写入的方法
Nov 18 PHP
Symfony控制层深入详解
Mar 17 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
Apr 02 PHP
PHP多维数组排序array详解
Nov 21 PHP
在laravel5.2中实现点击用户头像更改头像的方法
Oct 14 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
Oct 23 PHP
Laravel框架实现抢红包功能示例
Oct 31 PHP
PHP实现本地图片转base64格式并上传
May 29 PHP
PHP 技巧 * SVG 保存为图片(分享图生成)
Apr 02 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
php_screw安装使用教程(另一个PHP代码加密实现)
2014/05/29 PHP
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
列举PHP的Yii 2框架的开发优势
2015/07/03 PHP
微信支付开发发货通知实例
2016/07/12 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
Javascript 布尔型分析
2008/12/22 Javascript
尝试在让script的type属性等于text/html
2013/01/15 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
vue中渐进过渡效果实现
2016/10/27 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
2016/12/08 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
基于jquery实现二级联动效果
2017/03/30 jQuery
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
JavaScript实现三级联动菜单实例代码
2017/06/26 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
基于jquery实现左右上下移动效果
2018/05/02 jQuery
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
JS实现长图上下滚动效果
2020/03/19 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
Python中的True,False条件判断实例分析
2015/01/12 Python
dataframe设置两个条件取值的实例
2018/04/12 Python
Python实现FLV视频拼接功能
2020/01/21 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
国家地理在线商店:Shop National Geographic
2018/06/30 全球购物
全球在线商店:BerryLook
2019/04/14 全球购物
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
大学新生欢迎词
2014/01/10 职场文书
毕业生求职信的经典写法
2014/01/31 职场文书
政风行风整改方案
2014/10/25 职场文书
合作与交流自我评价
2015/03/09 职场文书
《弟子规》读后感:知廉耻、明是非、懂荣辱、辨善恶
2019/12/03 职场文书
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android
Python多线程 Queue 模块常见用法
2021/07/04 Python
PHP正则表达式之RCEService回溯
2022/04/11 PHP