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 curl获取网页内容(IPV6下超时)的解决办法
Jul 16 PHP
支付宝接口开发集成支付环境小结
Mar 17 PHP
php生成图片验证码-附五种验证码
Aug 19 PHP
PHP5.5迭代生成器用法实例详解
Mar 16 PHP
PHP的自定义模板引擎
Mar 24 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
May 08 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
Jul 03 PHP
使用Git实现Laravel项目的自动化部署
Nov 24 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
Feb 26 PHP
PHP中echo与print区别点整理
Mar 09 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
计数器详细设计
2006/10/09 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
php文件上传类的分享
2017/07/06 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
onpropertypchange
2006/07/01 Javascript
网页和浏览器兼容性问题汇总(draft1)
2009/06/01 Javascript
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
Jquery1.9.1源码分析系列(六)延时对象应用之jQuery.ready
2015/11/24 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
JavaScript中String对象的方法介绍
2017/01/04 Javascript
vuejs2.0运用原生js实现简单的拖拽元素功能示例
2017/02/24 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
Webpack中SplitChunksPlugin 配置参数详解
2020/03/24 Javascript
JS如何生成动态列表
2020/09/22 Javascript
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
python日志logging模块使用方法分析
2019/05/23 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
python中property属性的介绍及其应用详解
2019/08/29 Python
Python函数中的可变长参数详解
2019/09/12 Python
python树的同构学习笔记
2019/09/14 Python
Python 类的魔法属性用法实例分析
2019/11/21 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
python ETL工具 pyetl
2020/06/07 Python
中学教师实习自我鉴定
2013/09/28 职场文书
连锁酒店店长职责范本
2014/02/13 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
《正比例》教学反思
2016/02/23 职场文书
送给客户微信问候语!
2019/07/04 职场文书