Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SAP客户端的PHP SOAP服务器在WSDL中存在配置问题_Php_Sap_Nusoap - Fatal编程技术网

SAP客户端的PHP SOAP服务器在WSDL中存在配置问题

SAP客户端的PHP SOAP服务器在WSDL中存在配置问题,php,sap,nusoap,Php,Sap,Nusoap,我已经使用NuSOAP库编写了一个ws-SOAP服务器,它工作得很好,但是由于客户端应该是SAP实现,因此在尝试从SAP访问它时会出现一些问题。 我的WSDL由nusoap自动生成,包含以下定义 <definitions targetNamespace="https://example.com/ws/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2

我已经使用NuSOAP库编写了一个ws-SOAP服务器,它工作得很好,但是由于客户端应该是SAP实现,因此在尝试从SAP访问它时会出现一些问题。 我的WSDL由nusoap自动生成,包含以下定义

<definitions targetNamespace="https://example.com/ws/" 
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:tns="https://example.com/ws/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
    <types>
        <xsd:schema elementFormDefault="qualified" targetNamespace="https://example.com/ws/">
        <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
        <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/"/>
但它对生成的wsdl没有任何影响

任何想法都将受到赞赏。先谢谢你

我必须从rpc/编码样式切换到文档/文字

SAP不支持Web服务中的RPC样式,因此出现错误

下面是SAP说明,说明了如何进行调整

/

我提供了一些示例,解释了注释中包含的WSDL格式,以防您没有S-login来访问注释

我必须从rpc/编码样式切换到文档/文字

SAP不支持Web服务中的RPC样式,因此出现错误

下面是SAP说明,说明了如何进行调整

/


如果您没有S-login来访问注释,我将举例说明注释中包含的WSDL格式。

您没有说明如何在SAP端使用WSDL,因此我假设您正在通过事务代码SE80或SPROXY创建客户端代理。您可以轻松地将WSDL下载到笔记本电脑,在本地编辑它,并使用此本地编辑的WSDL文件创建客户端代理。Ey Sandra,感谢您的输入。我不知道SAP团队是如何管理他们的连接的,因为这不是我的领域,但他们只是让我知道错误代码。你告诉我SAP可以通过本地编辑wsdl文件管理连接,可以吗?再次感谢,我确认。创建SAP客户机代理是一个典型的问题,因为SAP WSDL解析器不能处理所有的可能性,并且消息不够明确。SAP Notes/KBA 944029(ABAP代理生成支持的XML模式)解释了一些限制(但不是全部)。唯一的解决方案是SAP人员根据SAP允许的内容调整WSDL,而不是Web服务提供商更改WSDL!请记住,我的回答只有在SAP团队生成ABAP客户端代理时才有效。非常感谢Sandra,我将与SAP团队分享您的想法,同时我将继续尝试修改服务器类。您没有说明如何在SAP端使用WSDL,因此我假设您是通过事务代码SE80或SPROXY创建客户端代理。您可以轻松地将WSDL下载到笔记本电脑,在本地编辑它,并使用此本地编辑的WSDL文件创建客户端代理。Ey Sandra,感谢您的输入。我不知道SAP团队是如何管理他们的连接的,因为这不是我的领域,但他们只是让我知道错误代码。你告诉我SAP可以通过本地编辑wsdl文件管理连接,可以吗?再次感谢,我确认。创建SAP客户机代理是一个典型的问题,因为SAP WSDL解析器不能处理所有的可能性,并且消息不够明确。SAP Notes/KBA 944029(ABAP代理生成支持的XML模式)解释了一些限制(但不是全部)。唯一的解决方案是SAP人员根据SAP允许的内容调整WSDL,而不是Web服务提供商更改WSDL!请记住,我的回答只有在SAP团队生成ABAP客户端代理时才有效。非常感谢Sandra,我将与SAP团队分享您的想法,同时我将继续尝试修改服务器类。感谢@Suncatcher的回复。我不是这方面的专家,但我在任何complexType定义上都选择了
document/literal
,其中NuSOAP为
use
style
设置了占位符,但我认为这还不够。不管怎么说,SAP的两行显然都在导入名称空间因为它们被认为是“未知名称空间”,谢谢@Suncatcher的回复。我不是这方面的专家,但我在任何complexType定义上都选择了
document/literal
,其中NuSOAP为
use
style
设置了占位符,但我认为这还不够。不管怎么说,SAP的两行显然都在导入名称空间因为它们被认为是“未知命名空间”
$this->wsdl->schemas[$schemaTargetNamespace][0]->imports['http://schemas.xmlsoap.org/soap/encoding/'][0] = array('location' => '', 'loaded' => true);