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的正则处理函数总结分析
Jun 20 PHP
discuz的php防止sql注入函数
Jan 17 PHP
PHP正则表达式之定界符和原子介绍
Oct 05 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
Aug 06 PHP
php 如何获取数组第一个值
Aug 06 PHP
PHP中浮点数计算比较及取整不准确的解决方法
Jan 09 PHP
php中session定期自动清理的方法
Nov 12 PHP
详解WordPress开发中wp_title()函数的用法
Jan 07 PHP
php操作路径的经典方法(必看篇)
Oct 04 PHP
yii2实现Ueditor百度编辑器的示例代码
Nov 02 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
Oct 01 PHP
PHP如何获取Cookie并实现模拟登录
Jul 16 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 一个页面执行时间类代码
2010/03/05 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
2016/01/12 PHP
Discuz论坛密码与密保加密规则
2016/12/19 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
javascript Base类 包含基本的方法
2009/07/22 Javascript
javascript 触发事件列表 比较不错
2009/09/03 Javascript
JavaScript 模拟用户单击事件
2009/12/31 Javascript
js模拟select下拉菜单控件的代码
2013/05/08 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
关于json字符串与实体之间的严格验证代码
2016/11/10 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
详解vue项目首页加载速度优化
2017/10/18 Javascript
基于vue+canvas的excel-like组件实例详解
2017/11/28 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
Python中关于Sequence切片的下标问题详解
2017/06/15 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
基于python plotly交互式图表大全
2019/12/07 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
KIKO美国官网:意大利的平价彩妆品牌
2017/05/16 全球购物
幼儿园门卫制度
2014/01/29 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
2015年团支部工作总结
2015/04/03 职场文书
中学感恩教育活动总结
2015/05/05 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书
Java tomcat手动配置servlet详解
2021/11/27 Java/Android
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL