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无敌近乎加密方式!
Jul 17 PHP
分享最受欢迎的5款PHP框架
Nov 27 PHP
php计算函数执行时间的方法
Mar 20 PHP
PHP编程中的__clone()方法使用详解
Nov 27 PHP
PHP操作mysql数据库分表的方法
Jun 09 PHP
浅谈PHP的反射API
Feb 26 PHP
php PDO实现的事务回滚示例
Mar 23 PHP
ZendFramework2连接数据库操作实例
Apr 18 PHP
PHP实现获取第一个中文首字母并进行排序的方法
May 09 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
Laravel如何自定义command命令浅析
Mar 23 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 06 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
十大“创意”战术!
2020/03/04 星际争霸
新版PHP将向Java靠拢
2006/10/09 PHP
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
php删除数组元素示例分享
2014/02/17 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
用JavaScript隐藏控件的方法
2009/09/21 Javascript
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
js放到head中失效的原因与解决方法
2017/03/07 Javascript
深入理解Commonjs规范及Node模块实现
2017/05/17 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
总结js函数相关知识点
2018/02/27 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
用Python和MD5实现网站挂马检测程序
2014/03/13 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
python画环形图的方法
2020/03/25 Python
使用Django搭建网站实现商品分页功能
2020/05/22 Python
Python第三方包PrettyTable安装及用法解析
2020/07/08 Python
Python 在局部变量域中执行代码
2020/08/07 Python
python自动化办公操作PPT的实现
2021/02/05 Python
类、抽象类、接口的差异
2016/06/13 面试题
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
大学同学十年聚会感言
2014/02/21 职场文书
诚信考试倡议书
2014/04/15 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
病危通知书样本
2015/04/17 职场文书