问题标签 [soapserver]
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.
php - SoapServer,handle() 故障 - 未设置程序
所以错误是:
PHP Fatal error: Procedure 'sup:set_availability' not present in XMLSoapServer.php
我在我的开发环境 (MAMP) 上收到此错误。
这是由无效的 XML 字符串引起的,其中未定义“sup”命名空间:
(这是一个外部请求,所以我不能只是去纠正来源 - 我可以,但至少不是在短时间内。)
问题是我有 2 台服务器正在处理相同的请求。没有错误。所以我的任务是找出原因:)
一些细节:
- 服务器 1:php 5.3.2
- 服务器 2:php 5.4
- 开发:php 5.4
到目前为止我检查过的事情:
- 代码是相同的 svn-checkout
- 没有隐藏的开发或生产设置
- apache配置是一样的
- wsdl 缓存被禁用,缓存的 wsdl 被清除
- php.ini 设置相同,但 libxml2 除外:
服务器 1 的版本为 2.6.26 服务器 2 的版本为 2.7.7 - 请求在该版本上的工作就像一个魅力 我的开发环境有 lixml2 版本 2.8.0 - 并且确实引发了致命错误。
我的猜测是(或者曾经是)libxml2 导致了错误——但我找不到关于这个主题的任何资源——我也没有成功地将我的本地 libxml2 版本降级到 2.6 或 2.7。
所以......对此有什么想法吗?
php - symfony2 SoapServer EntityManager injection in service
I've got a problem with the native php SoapServer in symfony2. The SoapServer uses a "UserService" Service-Class in symfony2, which should be instantiated with the symfony2 EntityManager injected so that I can get access to my "UserRepository".
To clarify:
Soap-Server:
Service:
Problem is: the SoapServer always returns an Internal Server Error. The service itself works called in symfony2 directly. Is it even possible to inject the EntityManager when called/instantiated by the SoapServer?
Thanks in advance!
Martin
php - SOAPServer+php+iis v6(不正确的结束标记)
谢谢阅读。我在使用 php 中的 SOAPServer 类时遇到了一个大问题。
当我们进行测试时,我们有这个响应,效果很好:
但是当我们做同样的事情,但在其他服务器上,我们有这个响应:
正如您在第二个响应中看到的那样,有 3 个不同的问题:
- 它用 < 和 > 代替 < 和 >
- 在 xml 的末尾缺少 de >
- 并且 xml 它没有格式化(我为你做的:))
服务器的相关资料:
- 相同的 wsdl、Web 服务器、php_soap.dll、php.ini
- 我们使用 iis v6 和 php v5.2.9-2
php 在两个服务器中都以这种方式调用 SOAPServer:
新的 SOAPServer($Path, array('encoding'=>'ISO-8859-1'))
好吧,您可以告诉我们的任何信息或您可能认为值得一试的任何线索都可以告诉它...当然,如果您需要更多信息,也一样。
提前谢谢大家!
php - 使用 PHP 在 Zend Soap Server 中验证标头
当客户端向服务器发送请求时,我正在尝试验证soap标头。我需要通过阅读肥皂标题来做到这一点。我可以为soap头设置参数,但我不知道如何从服务器端读取soap头并验证客户端的请求。请帮忙。
谢谢你。
php - WSDL PHP Soapserver 数组和复杂类型请求
我用 PHP Soapserver 在 php 中创建了一个肥皂服务器。我创建了一个函数“addItems”,将多个项目作为数组添加到第一个参数和相应的 wsdl 文档中。在 wsdl 中,我创建了一个数组对象“项目”,如下所示:
php 函数只是传递给 php soapserver 的简单类方法,如下所示:
问题在于 php soapserver 处理数组的方式。当我只添加一个项目时,项目列表不会作为数组返回。当我添加两个项目时,项目数组存储在一个项目元素中,而不是预期的项目参数中。
我尝试使用 soapenc:array,但这似乎与http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16.html#refinement16556272中提到的 WS-I 合规性不兼容,而且它也失败了当我想要在使用这种类型的编码时将服务添加到 Visual Studio 时。
那么我做错了什么?我想我必须在某个地方更改 wsdl,但找不到工作示例。还是我必须为soapserver 设置一些选项?我迷路了。
以下是请求、实际结果和预期结果:
请求一项:
$items 参数的实际结果
$items 参数的预期结果
请求多个:
$items 参数的实际结果
预期结果
在完整的 WSDL 下方:
php - 不能在 C# winform 中使用 php soapserver
我有一个简单的 php soapserver,我还为它创建了一个 wsdl 文件。我可以在 php 中使用它,但我也想在 .net winform 中使用它。我搜索了它,但建议的文章都没有用。你能帮我吗?这是我的soapserver,页面名称是testserver.php:
这是我的 wsdl 文件,文件名是 test1.wsdl:
提前致谢!
soap - 使用带有 Soap v1.2 而不是默认的 v1.1 的 spring-ws 生成 SOAP Web 服务
我目前正在从事 Spring soap 服务器项目。我从 Spring 的入门指南http://spring.io/guides/gs/produce-web-service/开始构建一个基本的 SOAP 服务。
默认的 SOAP 协议是 SOAP v1.1。有没有办法可以通过注释将协议设置为 v1.2?
我在课堂上尝试@BindingType(javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)
了注释,@Endpoint
但它似乎不起作用。
我也尝试@Endpoint(value = SOAPBinding.SOAP12HTTP_BINDING)
设置它,但这也不起作用,如启动日志中所示
当然,如果我向服务器发布 SOAP 请求,我会收到以下错误
任何帮助表示赞赏。
谢谢!
php - SoapServer->handle() 忽略输出缓冲
我试图在SoapServer
实际发送到浏览器之前捕获 PHP 类发送的用于调试的响应。
我正在利用Zend_Soap_Server
它应该允许SoapServer->handle()
使用输出缓冲捕获输出。但是,handle 方法似乎完全忽略了缓冲区,直接发送到浏览器并杀死请求。
这是直接取自该Zend_Soap_Server->handle()
方法的摘录。
从上面可以看出,$soap->handle()
应该在缓冲区中捕获输出并分配给$this->_response
with ob_get_clean()
。$soap->handle()
尽管结束请求,PHP 似乎从来没有达到这一点。
如果我在缓冲区中回显一个字符串,它不会发送到浏览器并且被正确缓冲,这让我认为这$soap->handle()
是在做一些破坏它的事情。
在这里的任何帮助将不胜感激。
php - SoapServer 无效响应
我正在尝试创建SoapServer
,理论上看WSDL
一切都应该没问题,但是我实现的服务器返回无效的响应。wsdl
其中定义请求和响应的一部分:
和我在php
处理程序中的函数:
这导致发送response
如下所示:
该result
标签是空的,但应该设置在我的服务器中描述它的数组。谁能给我一个提示我错过了什么?
php - 检查基于 PHP 的 SOAP 服务器是否完全正常工作
几天前,我遇到了一个 SOAP-Server 问题,让我抓狂。我也有一个非常简单的 SOAP-Client PHP 脚本来询问一个简单的 SOAP-Server PHP 脚本。
我的调试服务器上有这些脚本的精确副本,它们可以完美地工作(它只是一个 hello World 函数),但在生产中似乎无法从soap-client 获得soap-server 的响应。我不断收到“Procedure 'ns1:testHello' not present”错误(testHello 是函数名)。
我知道生产客户端正在工作,因为如果我从生产服务器调用开发 WSDL,它会完美运行。我确实认为它与 SOAP 服务器有某种关联,但我怎么能准确地知道它是否工作正常以及出了什么问题?
如果我看一下 infophp() 转储,我会看到 SOAP 服务器和客户端都已启用
我尝试强制使用 SOAP_1_1 和 SOAP_1_2 版本,但没有更改。我已经尝试禁用每种缓存,但也没有任何更改。我读过“ns:X 函数不存在”通常是由于 WSDL 配置错误,但如果它是一个精确的副本怎么可能是错误的(targetNamespace、xmlns:tns 和 soap:address 指向生产服务器的 URL 除外)
我开始认为这与某些 Web 服务器配置设置有关。有任何想法吗?我可以做哪些测试?
提前感谢很多。
我的服务器代码:
我的客户代码
我的 WSDL 文件