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 相关文章推荐
用session做客户验证时的注意事项
Oct 09 PHP
php打造属于自己的MVC框架
Mar 07 PHP
ini_set的用法介绍
Jan 07 PHP
php把session写入数据库示例
Feb 26 PHP
php断点续传之如何分割合并文件
Mar 22 PHP
WordPress后台中实现图片上传功能的实例讲解
Jan 11 PHP
ThinkPHP3.2.3实现分页的方法详解
Jun 03 PHP
详解php框架Yaf路由重写
Jun 20 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
PHP结合Vue实现滚动底部加载效果
Dec 17 PHP
php服务器的系统详解
Oct 12 PHP
在laravel5.2中实现点击用户头像更改头像的方法
Oct 14 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 has encountered an Access Violation at 7C94BD02解决方法
2009/08/24 PHP
php4与php5的区别小结(配置异同)
2011/12/20 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
window.open被浏览器拦截后的自定义提示效果代码
2007/11/19 Javascript
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
2010/03/16 Javascript
return false;和e.preventDefault();的区别
2010/07/11 Javascript
在JS数组特定索引处指定位置插入元素
2014/07/27 Javascript
js实现透明度渐变效果的方法
2015/04/10 Javascript
javascript中Math.random()使用详解
2015/04/15 Javascript
JavaScript中string对象
2015/06/12 Javascript
jquery实现页面加载效果
2017/02/21 Javascript
JQuery实现定时刷新功能代码
2017/05/09 jQuery
Angular排序实例详解
2017/06/28 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
2017/10/27 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
微信小程序实现无限滚动列表
2020/05/29 Javascript
Angular Material Icon使用详解
2018/11/07 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
Python 文件操作的详解及实例
2017/09/18 Python
Python unittest模块用法实例分析
2018/05/25 Python
Python读取excel中的图片完美解决方法
2018/07/27 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
户籍证明的格式
2014/01/13 职场文书
办公设备采购方案
2014/03/16 职场文书
春节晚会主持词
2014/03/24 职场文书
《草原的早晨》教学反思
2014/04/08 职场文书
设计专业毕业生求职信
2014/06/25 职场文书
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
浅谈什么是SpringBoot异常处理自动配置的原理
2021/06/21 Java/Android
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python