,PHP   工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛,PHP
您的位置:软件 > 开发者网络 > 开发工具 > Web开发 > PHP > 正文
PHP5中使用Web服务访问J2EE应用程序
[文章信息]
作者:不详
时间:2005-04-11
出处:CNBLOG
责任编辑:方舟
[文章导读]
本文将通过一些例子说明如何通过PHP 5 中新的 SOAP 扩展使用 Web 服务来访问 J2EE 应用程序
advertisement
专题教程宝典
【软件应用】
【办公软件】
【图形图像】
【网页制作】
【操作系统】
【网络安全】
【程序开发】
【日报周刊】
【多媒体教程】
· 天极软件应用多媒体教程
· 游戏开发新手入门讲座
· 多媒体系列教程:网页设计制作
· 豪杰超级解霸V9使用手册(下)
· 打造个性化的Windows操作系统
· 图解Photoshop CS2 新功能体验
· 编程中的“拿来主义” 第三方控件推荐
· JBuilder 2005 单元测试体验
· 豪杰超级解霸V9使用手册(上)
· 数码照片后期处理与创意设计
[正文]

1 2 3 4 5  下一页

  很多 Web 开发人员喜欢 PHP 的丰富功能和简单易用,但有时候他们需要访问 J2EE 应用程序服务器中已有的业务逻辑。本文将通过一些例子说明如何通过 PHP 5 中新的 SOAP 扩展使用 Web 服务来访问 J2EE 应用程序,而不必脱离 PHP 环境,也不用学习新的编程模型。

  PHP、Web 服务和 SOAP 简介

  本文将介绍如何从 PHP 脚本中访问企业应用程序。您可能是一位 PHP 程序员,需要为部门 Web 应用程序编写代码,以便访问公司总部以 Web 服务方式提供的服务。您或许是一位有经验的 J2EE 开发人员,希望多了解一点 PHP 及其应用。本文中的例子是一个运行在 IBM WebSphere? 应用程序服务器上的 Enterprise JavaBean(EJB),但本文并没有讨论 Web 服务的部署。它的主要目标是介绍如何从 PHP 中使用 Web 服务,这一点可以应用于各种 Web 服务实现。

  什么是 PHP?

  PHP:Hypertext Preprocessor(超文本预处理器,PHP)是一种流行的服务器端脚本语言,用于创建动态 Web 内容。PHP 解释器为主流平台提供了源代码或者编译好的二进制文件,这些平台包括大多数 Linux? 版本、Windows?、Mac OS X 和 iSeries?。

  确实有数百万台 Web 服务器正在运行 PHP,其中大部分使用的是 PHP 4。2004 年 7 月推出的 PHP 5 正在逐渐被采用。PHP 5 改进了对象模型,底层的内存管理也从多线程和性能的角度重新作了设计。但是需要注意少数无法向后兼容的修改,PHP 手册中对这些进行了记录。

  什么是 Web 服务技术?

  Web 服务指的是自成体系的、模块化的应用程序,客户机和服务在这种应用程序中是松耦合的。关于 Web 服务的详细信息,对于本文来说,您只需要了解其中的主要技术:

  SOAP(简单对象访问协议)定义了客户机与服务器之间传递的消息。消息采用 XML 格式。SOAP 独立于平台、编程语言、网络和传输层。本文将讨论 HTTP 上的 SOAP。

  WSDL(Web 服务描述语言)是用于描述 Web 服务的基于 XML 的语言,描述内容包括服务的位置、格式、操作、参数和数据类型。

  UDDI(统一描述、发现和集成)是用 API 和 UDDI Registry 实现来提供在网络上存储和检索 Web 服务信息的方法。

  本文包括 SOAP 消息和 WSDL 文档的一些例子,但没有提供 UDDI 的例子。

  XMethods 网站是一个有用的 Web 服务工具,在那里可以找到在各种服务器平台上实现的可公开使用的 Web 服务的列表。可以使用本文中的例子很方便地访问从 XMethods 中选择的服务。

  SOAP 和 PHP

  有多种产品允许在 PHP 4 脚本中使用 SOAP,最常见的产品是 PEAR::SOAP 和 NuSOAP。在写这篇文章的时候,这些产品在与 PHP 5 的兼容方面还存在问题,估计很快就会升级。

  PHP 5 中新增了内置的 SOAP 扩展,我们称之为 ext/soap。它是作为 PHP 的一部分提供的,因此不需要下载、安装和管理单独的包。这是第一个用 C 而不是 PHP 为 PHP 编写的 SOAP 实现,因此作者声称它的速度要快得多。

  因为新的扩展是 PHP 的完整组成部分之一,相关文档包含在 PHP 手册的 Function Reference 部分。SOAP 参考是以一个重要的免责声明开始的:

  警告:该扩展是试验性的(EXPERIMENTAL)。本扩展的行为,包括关于本扩展的函数名和其他内容,在以后的 PHP 版本中随时可能改变,不另行通知。使用该扩展的风险自负。

  警告看起来有点让人担心,但实际上这个扩展似乎得到了很好的支持。和任何新代码一样,该扩展也存在缺陷,但是报告的问题通常很快就能得到修正。在 PHP 站点上可以看到缺陷列表。我们估计,在将来的 PHP 版本中,该扩展将从试验性功能转为主流功能。

  安装 PHP SOAP 扩展

  应该在 Web 服务器上安装并运行 PHP 5。我们的实验采用 PHP 5.0.2,这是现在最新的版本,修正了 PHP 5 初始版本中的很多错误。上面已经提到,ext/soap 是作为 PHP 5 的一部分提供的,因此不需要单独下载,但是您可能需要对它做一些修改来启用它。需要做哪些修改则取决于您是下载源代码,自己编译 PHP,还是直接下载二进制文件。

  如果下载的是 PHP 源代码,并在自己的平台上编译,那么可能需要重新进行构建,因为在默认情况下没有启用 ext/soap。重复以前的构建过程,并在 configure 命令中添加 --enable-soap 选项。

  如果下载的是预编译平台的二进制文件,ext/soap 可能已经编译但没有加载,因此需要更新 PHP 配置,以便加载 ext/soap。编辑 php.ini 并找到 Dynamic Extensions 部分,在这里增加一行代码来自动加载该扩展。

  在 Windows 上,这一代码行是:

extension=php_soap.dll

  在 UNIX 上是:

extension=php_soap.so

  如果以前没有加载过任何可选的扩展,可能还要设置 extension_dir 指令,让它指向包含扩展库(其中包括 php_soap)的目录,比如:

extension_dir="C:/php/ext/"(在 Windows 上使用正斜杠)

  不要将目录信息放到 extension 指令中,需要的话可以使用 extension_dir。

  对于 Windows,可以下载其他两个二进制包。Windows 安装程序包不含任何扩展,因此要使用 Windows zip 压缩包,这个压缩包中包含 ext/soap。

  注意,ext/soap 依赖于 GNOME xml 库,这个库必须使用 2.5.4 或更高版本。如果版本不够高,可以从 xmlsoft安装 libxml2。

  最后,ext/soap 在 php.ini 中有自己的配置部分,在完成配置之后,ext/soap 如下所示:

[soap]
; Enables or disables WSDL caching feature.
soap.wsdl_cache_enabled=1
; Sets the directory name where SOAP extension will put cache files.
soap.wsdl_cache_dir="/tmp"
; (time to live) Sets the number of second while cached file will be used
; instead of original one.
soap.wsdl_cache_ttl=86400

  这段配置控制了 SOAP 扩展的 WSDL 缓存特性。默认情况下,WSDL 描述文件在 24 小时(86400 秒)内都缓存在 /tmp 目录下。我们迟些时候再讨论这些内容,现在要设置 soap.wsdl_cache_enabled=0,否则,在开发代码时,您会遇到一些莫名其妙的行为。完成开发之后,要记得打开 WSDL 缓存,使代码运行得更快。

  为了便于参考,我们将在两种环境中使用 ext/soap:

Linux Centos 3.3(Red Hat EL 3 的免费重建版本)、Apache 2.0.47、PHP 5.0.2,需要升级 libxml2 到 2.6.12。
Windows XP SP1、Apache 2.0.46、PHP 5.0.2 二进制压缩包、libxml2 2.6.11。

  这些说明同样适用于其他配置。


1 2 3 4 5  下一页

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 
,PHP相关内容,PHP焦点新闻
  • PHP应用分页显示制作详细讲解
  • Windows中安装Apache2和PHP4权威指南
  • Windows 2000下PHP服务器安装攻略
  • PHP中实现面向对象编程
  • 使用PHP 5.0 轻松解析XML文档
  • FVD刺激高清碟机加速商业化 抢占商机最重要
  • 3家搜索引擎集体诉讼8848 吕春维未敢出席
  • 杨元庆:没有准备不会获批的备用方案
  • 军队信息化诞生新领域 电子军务呼之欲出
  • 世界经济论坛公布信息化程度全球最新排名
  • 2004政务绩效评估:政府门户尚处于发展阶段
  • 甲骨文出资5.15亿美元 意图收购RetekInc
  • 技术并购:帮你突破传统增长的“天花板”
  • ,PHPAdvertisement

    天极无线
    经典名曲 华语流行 欧美风情 人声音效 原声大碟
    你好周杰伦-安又琪
    直线-张韶涵
    天边-张韶涵
    看我72变-蔡依林
    乱世佳人-Twins
    全世界下雨-张娜拉
    我们的爱-飞儿乐队
    分手快乐-梁静茹
    爱在西元前-周杰伦
    三万英尺-迪克牛仔
    爱如潮水-张信哲
    爱情宣言-齐秦
    寻找玛依拉-刀郎
    驼铃-刀郎
    老鼠爱大米-杨臣刚
    功夫主题曲
    仙剑主题曲杀破狼
    天下无贼片尾曲
    冲动的惩罚-刀郎
    情人-刀郎
    爱情-莫文蔚
    挪威的森林-伍佰
    奔跑 - 羽泉
    因为爱 - 羽泉
      ·时尚女人圈
    ·经典影视专集
    ·美女秀场
    ·美丽大自然专题
    ·流行金曲
    ·科幻电影特区
    | 最新推荐
    ·你好周杰伦
    ·杀破狼
    ·寻找玛依拉
    ·孤单公园
    ·男人海洋
    | 魔术铃声
    ·少女丰胸
    ·少妇丰胸
    ·减肥魔铃
    ·增高魔铃
    ·美容魔铃

    今日报价查询 更多报价