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 minixml详解
Jul 19 PHP
php中一个有意思的日期逻辑处理
Mar 25 PHP
php实现的Curl封装类Curl.class.php用法实例分析
Sep 25 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
symfony2.4的twig中date用法分析
Mar 18 PHP
php ajax实现文件上传进度条
Mar 29 PHP
thinkphp跨库操作的简单代码实例
Sep 22 PHP
Yii2创建多界面主题(Theme)的方法
Oct 08 PHP
PHP使用imagick扩展实现合并图像的方法
Apr 25 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
Jan 26 PHP
阿里云服务器搭建Php+Apache运行环境的详细过程
May 15 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
终于听上了直流胆调频
2021/03/02 无线电
用PHP制作静态网站的模板框架(三)
2006/10/09 PHP
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
Javascript var变量隐式声明方法
2009/10/19 Javascript
Dom在ajax技术中的作用说明
2010/10/25 Javascript
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
document.write的几点使用心得
2014/05/14 Javascript
每天一篇javascript学习小结(属性定义方法)
2015/11/19 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
javascript中递归的两种写法
2017/01/17 Javascript
vue-router实现webApp切换页面动画效果代码
2017/05/25 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
Nginx 配置多站点vhost 的方法
2018/01/07 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
2020/09/01 Javascript
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
python常见数制转换实例分析
2015/05/09 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
python树莓派红外反射传感器
2019/01/21 Python
python字符串和常用数据结构知识总结
2019/05/21 Python
win8.1安装Python 2.7版环境图文详解
2019/07/01 Python
python实现移动木板小游戏
2020/10/09 Python
Nike荷兰官方网站:Nike.com (NL)
2018/04/19 全球购物
新闻专业学生的自我评价
2014/02/13 职场文书
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
教师暑期培训感言
2014/08/15 职场文书
圆明园观后感
2015/06/03 职场文书
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python
了解Redis常见应用场景
2021/06/23 Redis
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android
JavaScript分页组件使用方法详解
2021/07/26 Javascript
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS