php webservice 可能存在的坑
场景:
今天在生产机器上调用webservice失败 报 ...failed to load external entity...
wget一下地址发现报500错误 把wsdl去掉再wget 发现就没有任何问题 ,一想估计是生成wsdl协议时出错了 于是找一下接口方看看,但没有发现任何问题。
用soapUI加载失败
WSDLException (at /SOAP-ENV:Envelope): faultCode=INVALID_WSDL: Expected element '{http://schemas.xmlsoap.org/wsdl/}definitions'.
用浏览器打开接口地址发现一条信息(wget居然没给我显示出来)
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>WSDL generation is not supported yet</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
WSDL generation is not supported yet 看到这句话 我在想平时加上wsdl难道是虚假的没用的?
单写一个php测试soap代码
$client = new SoapClient(null,array('location'=>'http://xxx.com/WebServerApi.php?wsdl','uri' =>'http://127.0.0.1/'));
发现去掉wsdl 和加上wsdl 完全没有任何影响,都能调取数据
再看看SoapClient方法解释
Description public SoapClient::SoapClient ( mixed $wsdl [, array $options ] )
This constructor creates SoapClient objects in WSDL or non-WSDL mode. Parameters wsdl
URI of the WSDL file or NULL if working in non-WSDL mode.
第一个参数是填的null 表示不需定义wsdl,用这种方式是无法跨语言访问服务,因为我们访问拿不到wsdl,php之间调用还是可以,果然代码里面的地址写成?wsdl是装逼用的。
如果把null改为wsdl地址就会抛出异常
SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://xxx.com/WebServerApi.php?wsdl' : failed to load external entity
ok 原因找到 结案!
php webservice 可能存在的坑的更多相关文章
- WebService访问oracle数据库本地调试
WebService访问oracle数据库本地调试-一步一个坑 上篇文章提到我们额数据库挂了,重装了数据库,然后呢我需要在本地调试WebService,看看那些数据结构缺失,迁移到新数据库中去.踩坑之 ...
- C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式
C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...
- 一个简单的Webservice的demo,简单模拟服务
前段时间一直在学习WCF,匆匆忙忙的把<WCF全面解析>和<WCF服务编程>看了一遍,好多东西都不是很懂,又听了一下WCF分布式开发的网络教程,算是马马虎虎的明白点了.回顾了一 ...
- node.js WebService异常处理(domain)以及利用domain实现request生命周期的全局变量
成熟的Web Service技术,例如Fast CGI.J2EE.php,必然会对代码异常有足够的保护,好的Web必然会在出错后给出友好的提示,而不是莫名其妙的等待504超时.而node.js这里比较 ...
- xfire实现webservice客户端之测试关注点
日前的工作接触到很多系统间的Webservice调用,这里想谈谈基于spring+xfire实现的webservice的客户端踩过的一些坑,需要测试关注的点. xFire的配置项 在spring中实现 ...
- WebService第一天
WebService第一天 [课程安排]: 整体安排:2天: 第一天:webservice入门,JDK规范和实现:jax-ws,相关概念 第二天:CXF框架,和spring的集成开发.Hessian的 ...
- WebService返回数据前台获取并处理JSON的相关问题
起因: 记录这个问题的起因是一次解答网友的问题,当初自己初次接触webservice时也遇到过,但在写答案时,并没有很深的印象,只是知道webservice在后台返回值的时候,那里是有个坑的.网友问的 ...
- springboot+CXF开发webservice对外提供接口(转)
文章来源:http://www.leftso.com/blog/144.html 1.项目要对外提供接口,用webservcie的方式实现 2.添加的jar包 maven: <dependenc ...
- .net webService保存全局变量中
遇到坑,然后找到解决方案,我就习惯做个记录. 情景:通过webservice调用一个第三方的库,在初始化第三方库的时候需要花费较长时间 目的:希望通过初始化一次,缓存下来,下次直接调用,而不必每次初始 ...
随机推荐
- GPU CUDA之——深入理解threadIdx
http://blog.csdn.net/canhui_wang/article/details/51730264 摘要 本文主要讲述CUDA的threadIdx. 1. Grid,Block和Thr ...
- 【转】2013 PHP技术峰会《Bug Free的PHP开发实践分享》摘录
要想代码写的好,前提配置做的好 error_reporting = E_ALL | E_STRICT display_errors = 测试机设置为 On,生产机设置为 Off display_s ...
- MySQL数据库------常用函数
一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. [1]ABS(x) 返回x的绝对值 例子:SELECT ABS(-1) -- 返回1 [2]CEIL(x),CEILING( ...
- JDBC(6)事务处理&批量处理
事务处理就是当执行多个SQL指令,因某个指令有误,则取消执行所有的命令 它的作用是保证各项的完整性和一致性 JDBC的数据操作时 commit():提交事务 rollback():回退事务 绝位于ja ...
- LayIM项目之基础数据获取代码优化,Dapper取代ADO.NET
前言 最近在开发LayIM融云版,也在进行项目重构,现在在看之前的代码,简直不敢直视.不过不知道以后看现在的代码是不是也是糟糕的一批.LayIM有个接口,一般接触过的开发人员都不会生疏,就是init接 ...
- mapper.xml中动态sql抽取重复项
mabatis重点是通过标签对sql灵活的组织,通过配置的方式完成输入 输出映射. 1.对mapper.xml中重复的sql抽取统一维护,以及foreach使用 UserMapperCustom.xm ...
- 使用@SuppressWarnings("unchecked")消除非受检警告
使用泛型编程时,会遇到许多编译器警告,如:非受检强制转化警告,非受检方法调用警告,非受检普通数组创建警告,费受精转换警告.这次的内容就是遇到这些警告的时候你该怎么办 PS:非受检警告就是代码上黄色的感 ...
- java的foreach,后台弹框
for (String string : list) { if(string.equals(ids)){ int res = JOptionPane.showConfirmDialog(null, & ...
- 【题解】洛谷P1074 [NOIP2009TG] 靶形数独(DFS+剪枝)
洛谷P1074:https://www.luogu.org/problemnew/show/P1074 思路 这道题一看就是DFS 打一个分数表方便后面算分 我用x y z数组分别表示行 列 宫 是否 ...
- HDU 1029 Ignatius and the Princess IV (map的使用)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1029 Ignatius and the Princess IV Time Limit: 2000/10 ...