- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PHPWeb 服务与 SOAP 2
PHP、Web 服务和 SOAP 2
PHP、Web服务和SOAP(2)2009-09-18 10:26Java?客户机是这本书中开发的多个Weather Service客户机之一。ItsoWebService2EJBClient项目中的WeatherClientEJB是一个简单的Java servlet,调用getForecast Web服务操作。典型的运行结果如下所示:图2.Java WeatherClient下一步是在PHP中建立等价的客户机功能。
阅读本文不需要自己运行这个例子,可以针对从XMethods网站(请参阅)选择的服务建立PHP客户机。但是如果希望自己安装Weather Forecast这个例子,附录B中提供了完整的说明,您需要执行以下步骤:
建立WEATHER数据库(528页)。建立WebSphere测试服务器(529-533页),不需要配置JMS服务器。将示例项目导入Application Developer(539-540页),只需要ItsoWebService2xx项目。
这一节将建立我们自己的PHP Weather客户机。这里提供了一些代码片段,建议下载完整的客户机和WSDL文件(请参阅下载部分)。
用于表示Weather Service的ext/soap类是SoapClient。正如我们介绍Weather Forecast应用程序时所讨论的,我们知道应用服务器在中提供了WSDL。我们使用的是默认端口,并且在作为服务器的计算机上工作,这样就可以通过查找WSDL文件创建第一个SoapClient:
?php
$soapClient=new SoapClient(.
ItsoWebService2RouterWeb/wsdl/itso/session/WeatherForecastEJB.wsdl);
?
注意,因为ext/soap是内置的,所以,在引用SoapClient之前,不需要任何include或require语句。
现在已经实例化了客户机,还要联系Weather服务,并调用它的getForecast操作。在WSDL模式下使用SoapClient时,ext/soap有一种很好的特性,即可以直接引用远程操作,就像它是SoapClient自身的函数一样。但是在建立输入参数时需要一点技巧。ext/soap可以提供从WSDL中发现的操作和参数的数组:
$functions=$soapClient-__getFunctions();
print_r($functions);
$types=$soapClient-__getTypes();
print_r($types);
只需要显示与getForecast相关的结果,并重新格式化这些结果,以方便阅读,于是我们看到以下代码:
getForecastResponse getForecast(getForecast$parameters)
struct getForecast{
dateTime startDate;
int days;
struct getForecastResponse{
Weather getForecastReturn;
struct Weather{
string condition;
dateTime date;
string windDirection;
int windSpeed;
int temperatureCelsius;
boolean dbflag;
ext/soap实际上并没有为我们定义getForecast类,我们必须创建该操作所需要的输入参数数组:
$getForecastParam=array(startDate=time(),days=3);
然后像SoapClient的方法那样调用该操作:
$forecastResponse=$soapClient-getForecast($getForecastParam);
最后我们得到了返回的getForecastResponse对象,它本身是一个Weather对象数组,然后在表格中显示结果:
echotable border=1 cellpadding=5;
echotr th Date/th th Condition/th th Temperature/th th Wind/th/tr;
$weatherArray=$forecastResponse-getForecastReturn;
foreach($weatherArray as$weather){
echotr,
td,strftime(%a.%b%d,%Y,strtotime($weather-date)),/td,
td$weather-condition/td,
td$weather-tempera
您可能关注的文档
最近下载
- 13D101-1~4 110KV及以下电力电缆终端和接头.docx VIP
- 2025年高考化学(黑吉辽蒙卷) 真题详细解读及评析.docx
- 干式系统的工作原理.ppt VIP
- 周杰伦所有歌词(14张专辑-包括床边的故事)呕心沥血已经整理完毕可打印.doc VIP
- 英国文学史17th--Century-English---Literature4.ppt VIP
- 子宫颈癌筛查规范(2025年)解读课件PPT.pptx
- word模板:简约企业新闻报刊报纸排版设计word模板.docx VIP
- 露天矿开采(共117张课件).pptx VIP
- 人教版高中英语必修第一册Unit 2 教学课件 Reading and Thinking and Thinking.ppt VIP
- 2023心房颤动诊断和治疗中国指南(第二部分).docx VIP
文档评论(0)