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 向访客和爬虫显示不同的内容
Nov 09 PHP
php smarty模版引擎中的缓存应用
Dec 02 PHP
PHP中include()与require()的区别说明
Mar 10 PHP
PHPUnit PHP测试框架安装方法
Mar 23 PHP
PHP中执行cmd命令的方法
Oct 11 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
Oct 16 PHP
ThinkPHP模版中导入CSS和JS文件的方法
Nov 29 PHP
php中heredoc与nowdoc介绍
Dec 25 PHP
从wamp到xampp的升级之路
Apr 08 PHP
PHP中spl_autoload_register()函数用法实例详解
Jul 18 PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 14 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
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
PHP+XML 制作简单的留言本 图文教程
2009/11/02 PHP
PHP 图片文件上传实现代码
2010/12/29 PHP
php 调试利器debug_print_backtrace()
2012/07/23 PHP
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
PHP类的特性实例分析
2016/09/28 PHP
PHP实现数组的笛卡尔积运算示例
2017/12/15 PHP
javascript setTimeout()传递函数参数(包括传递对象参数)
2010/04/07 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
jQuery.extend()的实现方式详解及实例
2013/06/29 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
2014/12/08 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
2017/02/16 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
Layui多选只有最后一个值的解决方法
2019/09/02 Javascript
JavaScript实现下拉列表
2021/01/20 Javascript
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
Python 过滤字符串的技巧,map与itertools.imap
2008/09/06 Python
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
Python发送以整个文件夹的内容为附件的邮件的教程
2015/05/06 Python
python使用paramiko实现远程拷贝文件的方法
2016/04/18 Python
Python实现在线音乐播放器
2017/03/03 Python
pandas dataframe添加表格框线输出的方法
2019/02/08 Python
python画图的函数用法以及技巧
2019/06/28 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
Django实现微信小程序支付的示例代码
2020/09/03 Python
HTML5中实现拖放效果无须借助javascript
2012/12/26 HTML / CSS
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
自主招生自荐书
2013/11/29 职场文书
学习十八大的心得体会
2014/09/01 职场文书
学生早退检讨书(范文)
2019/08/19 职场文书