问题标签 [zend-soap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2058 浏览

php - SoapFault 异常:[VersionMismatch] PHP Zend

我在使用 Zend Soap 实现和测试 PHP Web 服务时遇到了这个错误。

我在 2 个不同的 Web 服务器中在 2 个不同的协议(http 和 https)下测试相同的代码。http 站点工作得很好,但我在 https 中收到“SoapFault 异常:[VersionMismatch] ...”错误。

两个 Web 服务器几乎具有相同的规格。

有没有人可以帮我解决这个问题?

0 投票
3 回答
387 浏览

php - PHP script ending prematurely

My site has a php page that prints out XML, for some reason though it's being truncated to 8KB in size, I've never encountered this before and all the other pages on the site remain un-truncated.

Where should I start looking for the problem and what could cause it to stop like this?

The site uses the Zend framework and the page in question uses the soap server.

0 投票
5 回答
3832 浏览

php - nuSoap 还是 Zend Soap?

我想知道nusoap和ZendSoap的区别,哪个最好?各有什么好处和坏处?任何使用过这两种技术的人都可以进行比较吗?

谢谢

0 投票
2 回答
3532 浏览

php - zf 1.9.6 zend_soap:函数(“doString”)不是此服务的有效方法

这个问题的重复

我正在尝试使用 zend 框架 1.9.6 和 php 5.3.1 使用 Zend_Soap。

soap.php(wsdl 生成器)

Soaping.php(网络服务类)

client.php - 客户端

当我执行 client.php 文件时,我收到错误: Fatal error: Uncaught SoapFault exception: [Sender] Function ("do_math") is not a valid method for this service in /usr/local/ZendFramework-1.9.6/library/Zend/Soap/Client.php:1090 Stack trace: #0 /usr/local/ZendFramework-1.9.6/library/Zend/Soap/Client.php(1090): SoapClient->__soapCall('do_math', Array, NULL, NULL, Array) #1 [internal function]: Zend_Soap_Client->__call('do_math', Array) #2 /home/ufk/Projects/xpogames-development/xpo/soap/client.php(6): Zend_Soap_Client->do_math(1, 1) #3 {main} thrown in /usr/local/ZendFramework-1.9.6/library/Zend/Soap/Client.php on line 1090

通过链接 http://server/soap/soap.php?wsdl 创建的 xml

<?xml version="1.0"?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://xpogames/soap/soap.php" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="Soaping" targetNamespace="http://xpogames/soap/soap.php"><types><xsd:schema targetNamespace="http://xpogames/soap/soap.php"/></types><portType name="SoapingPort"><operation name="doString"><documentation>do string</documentation><input message="tns:doStringIn"/><output message="tns:doStringOut"/></operation></portType><binding name="SoapingBinding" type="tns:SoapingPort"><soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/><operation name="doString"><soap:operation soapAction="http://xpogames/soap/soap.php#doString"/><input><soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://xpogames/soap/soap.php"/></input><output><soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://xpogames/soap/soap.php"/></output></operation></binding><service name="SoapingService"><port name="SoapingPort" binding="tns:SoapingBinding"><soap:address location="http://xpogames/soap/soap.php"/></port></service><message name="doStringIn"><part name="str" type="xsd:string"/></message><message name="doStringOut"><part name="return" type="xsd:string"/></message></definitions>

我看到该函数存在于xml中,为什么我不能使用它?

更新

如果我在类中添加以下函数:
/**
* 添加方法
*
* @param Int $param1
* @param Int $param2
* @return Int
*/
public function math_add($param1, $param2) {
return $param1+$参数2;
}

这个函数得到认可。但即使我将其更改为 add_math2(),该函数也不会再次被识别。

0 投票
2 回答
2720 浏览

php - 如何删除 Zend_Soap 中的名称空间?

我正在尝试使用 MyMemory 中的翻译网络服务:http: //mymemory.translated.net/doc/spec.php

不幸的是,Zend_Soap_Client 确实生成了一个服务无法识别的 XML 请求对象。我猜这是因为标签中的 ns1-Attribute(命名空间)。那么有人知道如何删除它们吗?

这基本上就是我所做的:

然后我调用函数:

生成的 XML 如下所示:

它实际上应该是这样的:

谢谢你的帮助!

0 投票
1 回答
1218 浏览

php - 使用 Zend Soap 类和自动 WSDL

很奇怪的东西。WSDL 文件生成良好。这是源简单类

WSDL、服务器、客户端的代码

自动生成的 WSDL 与 SoapServer 存在一些问题

在 Z:\home\localhost\www\Zend\Soap\Server.php:694 堆栈跟踪:#0 Z:\home\localhost\www\Zend\Soap\Server 中未捕获的异常“Zend_Soap_Server_Exception”和消息“无效 XML”。 php(817): Zend_Soap_Server->_setRequest('') #1 Z:\home\localhost\www\test.php(54): Zend_Soap_Server->handle() #2 {main} 在 Z:\home\localhost 中抛出\www\Zend\Soap\Server.php 第 694 行

我只是不明白为什么?WSDL 中没有多余的符号,如空格或 \n,所有标题都已指定。

PHP 5.2.12 ZF 1.10.0

0 投票
1 回答
1052 浏览

php - PHP - Zend Soap 对 .NET SOAP 服务器的请求

我想在这里得到一点帮助。

我正在尝试使用 Zend 从 PHP 向 .NET SOAP 服务器发送请求。

我有 WSDL 文件,但它不包含任何标题信息。尽管我尝试添加自定义标头,但这似乎不起作用,最糟糕的是 WSDL 文件本身似乎并不“正确”.....

这是链接:http ://www.speedex.gr/getvoutrans/getvoutrans.asmx 可以通过添加 ?WSDL 在同一链接中找到 WSDL

我的要求是:GetVouTrans

提前谢谢!

0 投票
2 回答
3392 浏览

php - 无法处理 PHP 的 SoapServer->handle() 方法中的错误

我使用 PHP 5.3 创建了一个基于 WSDL 的 SOAP Web 服务。我使用 Zend Framework 来处理该服务,而 ZF 又位于 PHP 的内置 SoapServer 类之上。

在使用 SoapUI 进行测试时,我发现传递无效类型的参数(例如,当 WSDL 定义整数时传递字符串)会导致空响应。深入研究代码,我发现当 ZF 调用 SoapServer->handle() 时,执行会因以下致命错误而终止:

这个错误是有道理的,但对于我的生活,我无法弄清楚如何捕获它以便我可以优雅地处理它。我的理解是,handle() 应该抛出一个异常,但它只是死了。

但这就是它变得非常奇怪的地方......

使用 SoapUI 运行多个测试,而不进行任何代码更改,会产生不同的结果。大多数时候,我得到的是空的响应,但偶尔,我会得到一个 SoapFault(我所期望的!)。然而,它并不一致,我无法弄清楚是什么触发了它。据我所知,我关闭了 SoapUI 中的缓存功能以及 WSDL 缓存。我不知道它是否与 SoapUI 或 PHP 有关。正如我所说,很奇怪。

相关,我发现了这个旧的 PHP 错误:

http://bugs.php.net/36629

这听起来很像我自己的问题。不过,我并不完全相信这是我的问题,主要是因为涵盖所有这些的 PHP 文档以及 ZF 的文档非常不完整。因此,我很可能只是在做一些非常错误的事情并且不知道。鉴于此,我希望看到一个简单的 shell,它显示了捕获和处理错误的正确方法。但我会接受人们可能提供的任何帮助。

0 投票
1 回答
2219 浏览

php - 如何在不支持 SOAP 的 Web 主机上启用 SOAP

在我的 php5 web 应用程序中,我使用 zend mailMerge 从用户数据构建 doc/pdf 文件。不幸的是,当我编写代码时,浏览器向我抛出一个错误: “未捕获异常 'Zend_Soap_Client_Exception' 并带有消息 'SOAP 扩展未加载。” 我联系了我的托管服务提供商并询问了有关安装肥皂的问题。他告诉我,我的主机不支持肥皂。我还发现了一个“nusoap”库。如那里所写,如果服务器不支持soap,这个库可以提供帮助。但是在我的网络应用程序中启用这个库后,没有任何变化。

那么,如果可能的话,如何在不支持 SOAP 的 Web 主机上启用 SOAP?

提前致谢。

0 投票
1 回答
882 浏览

arrays - Zend_Soap:如何在文档块中定义返回类型结构?

我有一个使用 Zend_Soap 设置的 Web 服务,以及该 Web 服务中的一些公共方法。事实是我想返回一个复杂的类型。

例如,如果我想返回一个二维数组,比如表的行集,我应该如何指定 doc 块?这是我的案例之一。我想返回一个数组,每个元素都有一个 int 和两个字符串。像:

我怎样才能做到这一点?那么我怎样才能让第三个字段变得更复杂,比如用另一个整数和字符串数组替换第三个字段呢?

TIA