soap 相关问题

简单对象访问协议(SOAP)是用于在Web服务的实现中交换结构化信息的协议规范。

SoapFault:看起来我们没有 XML 文档 php 错误

我有一个错误,我不知道解决方案。 $response = $client->addcontract($docVar,$fVar); 这行代码之后出现错误: 错误截图 $client=new SoapClient($wsdlUrl, 数组('

回答 1 投票 0

Apache 轴 javax.mail.internet.ParseException

我刚刚将 SOAP 客户端项目移动到另一个通过 REST 端点触发 SOAP 项目的项目下。但我面临一个例外。 我不太了解 SOAP。 谁能解释一下这个例外吗? 他...

回答 1 投票 0

如何在phpsoap中制作sapsoapwsdl

我正在尝试使用 php 连接到 SAP Soap 服务。 我有 url(后面是 xml,但 ssl 已过期)、用户名和密码。在邮递员中它返回200,所以没问题。 进口

回答 1 投票 0

尝试在 .NET 6 中使用 SOAP Web 服务时尝试以与数组不兼容的类型访问元素

我正在尝试在 .NET 6 C# 项目中使用 SOAP 服务。我必须实现自定义绑定来处理字符编码不匹配的问题。代码可以编译,但出现运行时异常

回答 1 投票 0

如何将 XML 传输到 Web 服务?

我了解到 SOAP 是一个有用的 PHP 库,用于将信息发送到 wsdl Web 服务。我正在构建一个要发送到 Web 服务的 XML 表。我的朋友制作了网络服务,他说这需要......

回答 1 投票 0

Python zeep - 使用 zeep.xsd.SkipValue 发送包

我想通过 WSDL 作为 SOAP 请求发送数据。到目前为止,我可以使用下面的结构来做到这一点,但是现在需要一个标签,我想在没有标签的情况下发送包裹...

回答 1 投票 0

Soap 抛出 java.io.IOException:HTTP 请求失败,HTTP 状态:500

实际上我使用此代码访问此网络服务 FahrenheitToCelsius 方法,得到了正确的响应,但是当我尝试访问我的网络服务时得到 java.io.IOException:HTTP

回答 3 投票 0

无法为 SOAP 创建消息工厂:无法创建 SAAJ 元工厂提供程序 com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl 未找到

我们的产品基于 eclipse RCP 和 OSGi 框架构建。 我已将代码从 JDK1.8 升级到 JDK11。在代码中,我使用 MessageFactory.newInstance().createMessage() 创建 SOAP 消息...

回答 2 投票 0

JMS 代理的 SOAP 或 REST 接口。 “基于 SOAP 的 JMS”

我的公司很久以前就决定向客户公开 JMS 队列以交换数据。我们正在迁移应用程序服务器,并且必须更新所有客户端库。所以我们

回答 1 投票 0

所有 HTTP 响应代码对所有 HTTP 动词都有效吗?

对于任何特定的 HTTP 动词是否存在无效的 HTTP 响应,或者理论上都是有效的?

回答 2 投票 0

PHP 从 XML 响应中获取属性

当我调用soap api 时,我得到这个响应 当我调用soap api 时,我得到这个响应 <?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wss="http://www.adonix.com/WSS"><soapenv:Body><wss:saveResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><saveReturn xsi:type="wss:CAdxResultXml"><messages xsi:type="soapenc:Array" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" soapenc:arrayType="wss:CAdxMessage[0]"></messages><resultXml xsi:type="xsd:string"><! [CDATA[{"PAY0_1":{"NUM":"WSBAC2310- 00033","PAYAPPFLG":"2","PAYAPPFLG_LBL":"Oui"},"PAY1_1": {"FCY":"101","BPR":"TRAVELT","BPAINV":"1"},"PAY1_2": {"ACCDAT":"20231007","REF":"04070436","BAN":"BNP01","AMTCUR":"362.00","CHQNUM":"82cfaaac0 7","ZPAYREF":"82cfaaac07"},"PAY1_5":{"FROCURRAT":"1 E","CURCURRAT":"EUR"},"PAY1_6": {"SOLDE":"652934.87"},"PAY1_4": [{"DENCOD":"OPE","VCRNUM":"","FCYLIN":"101","CURLIN":"EUR","AMTLIN":"362.00","DISDAT":nul l}],"PAY4_3":{"NBRPAY":"0"},"PAY4_1":[],"VTL_2":[],"ADXTEC": {"WW_MODSTAMP":"20231007193505","WW_MODUSER":"WSVPG"}}]]></resultXml><status xsi:type="xsd:int">1</status><technicalInfos xsi:type="wss:CAdxTechnicalInfos"><busy xsi:type="xsd:boolean">false</busy><changeLanguage xsi:type="xsd:boolean">false</changeLanguage><changeUserId xsi:type="xsd:boolean">false</changeUserId><flushAdx xsi:type="xsd:boolean">false</flushAdx><loadWebsDuration xsi:type="xsd:double">2</loadWebsDuration><nbDistributionCycle xsi:type="xsd:int">-1</nbDistributionCycle><poolDistribDuration xsi:type="xsd:double">1</poolDistribDuration><poolEntryIdx xsi:type="xsd:int">10100</poolEntryIdx><poolExecDuration xsi:type="xsd:double">441</poolExecDuration><poolRequestDuration xsi:type="xsd:double">-1</poolRequestDuration><poolWaitDuration xsi:type="xsd:double">0</poolWaitDuration><processReport xsi:type="xsd:string" xsi:nil="true"/><processReportSize xsi:type="xsd:int">-1</processReportSize><reloadWebs xsi:type="xsd:boolean">false</reloadWebs><resumitAfterDBOpen xsi:type="xsd:boolean">false</resumitAfterDBOpen><rowInDistribStack xsi:type="xsd:int" xsi:nil="true"/><totalDuration xsi:type="xsd:double">450</totalDuration><traceRequest xsi:type="xsd:string"/><traceRequestSize xsi:type="xsd:int">0</traceRequestSize> </technicalInfos></saveReturn></wss:saveResponse></soapenv:Body></soapenv:Envelope> 我想从这个文档获取状态属性, 我用这个代码 $xmlDomElement = new SimpleXMLElement(parent::__getLastResponse()); $xmlDomElement->registerXPathNamespace("wss", "http://www.adonix.com/WSS"); /** @var SimpleXMLElement $status */ $status = $xmlDomElement->xpath("//multiRef[1]//status/text()"); if ((int) $status[0]->__toString() == 0) { // my code } 但我收到错误Undefined index: 0 回复有效吗?在这种情况下我怎样才能获得状态属性,它是 1 尝试: $xmlDomElement = new SimpleXMLElement(parent::__getLastResponse()); $xmlDomElement->registerXPathNamespace("wss", "http://www.adonix.com/WSS"); $status = $xmlDomElement->xpath("//wss:saveResponse//saveReturn//status/text()"); if (isset($status[0]) && (int) $status[0]->__toString() == 0) { // my code }

回答 1 投票 0

PHP 和 SOAP 消息代理有什么用?

我正在研究一种解决方案,使大型数据库中的某些数据可用于远程网站。我的第一个想法是简单地编写一些肥皂网络服务来从数据中获取某些数据......

回答 1 投票 0

PHP SOAP 调用空响应(授权标头)

我想调用soap api,将数据保存到Sage X3版本12。 我正在使用这段代码: $选项=数组( '登录' => $用户名, '密码' => $密码, ); $api = 父级::__const...

回答 1 投票 0

WSDL 包含内容

将带有 XSD 的 WSDL 读取到 org.dom4j.io.SAXReader 中的正确方法是什么?有没有办法使用 ZipInputStream 来做到这一点,这样我就不必将其保存到磁盘?

回答 1 投票 0

向网络服务发送 XML 请求

我正在尝试将包含 xml 数据的调用发送到特定的 Web 服务,但收到响应代码 500。我正在努力解决此问题。任何意见将不胜感激。 字符串 wsURL = &...

回答 1 投票 0

在 Guidewire Insurance Suite 中记录 SOAP 消息

我想捕获我的 GW 应用程序(索赔中心和联系人管理器)之间的 SOAP 通信。我想让 CC 或 CM 将请求和响应写入日志文件,或者至少查看...

回答 2 投票 0

如何在Python中使用zeep在SOAP请求中传递“Any”类型参数

我有一个 WSDL,它在所有 SOAP 操作中使用“any”类型作为核心元素 (Element)。请注意,我已将其缩小,因为它相当大: 我有一个 WSDL,它在所有 SOAP 操作中使用“any”类型作为核心元素 (Element)。请注意,我已将其修剪掉,因为它很大: <?xml version="1.0" encoding="utf-8"?> <definitions targetNamespace="urn:xtk:queryDef" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="urn:xtk:queryDef" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> <types> <s:schema elementFormDefault="qualified" targetNamespace="urn:xtk:queryDef"> <s:complexType name="Element"> <s:sequence> <s:any processContents="lax"/> </s:sequence> </s:complexType> <s:element name="ExecuteQuery"> <s:complexType> <s:sequence> <s:element maxOccurs="1" minOccurs="1" name="sessiontoken" type="s:string" /> <s:element maxOccurs="1" minOccurs="1" name="entity" type="tns:Element" /> </s:sequence> </s:complexType> </s:element> <s:element name="ExecuteQueryResponse"> <s:complexType> <s:sequence> <s:element maxOccurs="1" minOccurs="1" name="pdomOutput" type="tns:Element" /> </s:sequence> </s:complexType> </s:element> </s:schema> </types> <message name="ExecuteQueryIn"> <part element="tns:ExecuteQuery" name="parameters" /> </message> <message name="ExecuteQueryOut"> <part element="tns:ExecuteQueryResponse" name="parameters" /> </message> <portType name="queryDefMethodsSoap"> <operation name="ExecuteQuery"> <input message="tns:ExecuteQueryIn" /> <output message="tns:ExecuteQueryOut" /> </operation> </portType> <binding name="queryDefMethodsSoap" type="tns:queryDefMethodsSoap"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation name="ExecuteQuery"> <soap:operation soapAction="xtk:queryDef#ExecuteQuery" style="document" /> <input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="literal" /> </input> <output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="literal" /> </output> </operation> </binding> <service name="XtkQueryDef"> <port binding="tns:queryDefMethodsSoap" name="queryDefMethodsSoap"> <soap:address location="https://xxxxxxxxxxxxxx/nl/jsp/soaprouter.jsp" /> </port> </service> </definitions> 我想在 Python 3 中使用 zeep 生成此有效负载: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:xtk:queryDef"> <soapenv:Header/> <soapenv:Body> <urn:ExecuteQuery> <urn:sessiontoken>xxxxxxx</urn:sessiontoken> <urn:entity> <queryDef schema="nms:recipient" operation="select"> <select> <node expr="@email"/> <node expr="@lastName+'-'+@firstName"/> <node expr="Year(@birthDate)"/> </select> <orderBy> <node expr="@birthDate" sortDesc="true"/> </orderBy> </queryDef> </urn:entity> </urn:ExecuteQuery> </soapenv:Body> </soapenv:Envelope> 但是我一生都无法弄清楚如何管理 WSDL 中的“Any”类型: <s:complexType name="Element"> <s:sequence> <s:any processContents="lax"/> </s:sequence> </s:complexType> 这就是 XML 中“实体”节点所需的类型。我尝试过的所有操作都会导致 zeep 出现异常。 这是我到目前为止所拥有的: # Executes a query and returns the result set def execute_query(session_token): # Load the WSDL locally - not authorised to get from server wsdl_url = os.path.abspath("querydef_dev.wsdl") history = HistoryPlugin() client = Client(wsdl_url, plugins=[history]) execute_query_type = client.get_element("ns0:ExecuteQuery") entity_type = client.get_type("ns0:Element") any_entity = xsd.AnyObject(entity_type, entity_type(_value_1={'queryDef': [{'schema': 'recipients'}]})) params = execute_query_type(entity=any_entity, sessiontoken=session_token) response = client.service.ExecuteQuery(params) if __name__ == '__main__': execute_query('xxxxxxx') 该代码特别给出了此错误: AttributeError: 'dict' object has no attribute 'value'. Did you mean: 'values'? 我想我已经明白了,使用 xsd.AnyObject 来设置。 我尝试了多种与 get_type、get_element 的组合,并使用 **params 和 params 致电服务。一切都以 client.service.ExecuteQuery() 抛出异常结束。 有什么想法我哪里出错了吗? 我找不到以任何有意义的方式使用 AnyObject 的答案。 但是,我确实通过使用 lxml 手动创建“任何”节点上下文来设法使其正常工作。 因此,对于我上面描述的用例: def execute_query(session_token): # Load the WSDL locally - not authorised to get from server wsdl_url = os.path.abspath("querydef_dev.wsdl") history = HistoryPlugin() client = Client(wsdl_url, plugins=[history]) # Construct the query def query_def_element = etree.Element('query_def') query_def_element.set('schema', 'nms:recipient') query_def_element.set('operation', 'select') select_element = etree.SubElement(query_def_element, 'select') node_element = etree.SubElement(select_element, 'node') node_element.set('expr', '@email') node_element2 = etree.SubElement(select_element, 'node') node_element2.set('expr', '"@lastName+"-""+@firstName"') node_element3 = etree.SubElement(select_element, 'node') node_element3.set('expr', 'Year(@birthDate)') order_element = etree.SubElement(query_def_element, 'orderBy') order_node_element = etree.SubElement(order_element, 'node') order_node_element.set('expr', '"@birthDate"') order_node_element.set('expr', 'sortDesc="true') # Construct the final payload data = { "sessiontoken": session_token, "entity": { "_value_1": query_def_element } } # Call the service response = client.service.ExecuteQuery(**data)```

回答 1 投票 0

System.Security.Cryptography.Pkcs 的 ComputeSignature 方法适用于本地主机,但不适用于 azure 应用程序服务

我正在开发一个c# web api。我添加了一个类库来连接到外部 Web 服务。要登录该资源,请执行以下方法: /// ... 我正在开发一个 C# Web api。我添加了一个类库来连接到外部 Web 服务。要登录该资源,请执行以下方法: /// <summary> /// Firma mensaje /// </summary> /// <param name="messageBytes">Bytes del mensaje</param> /// <param name="signerCertificate">Certificado usado para firmar</param> /// <returns>Bytes del mensaje firmado</returns> /// <remarks></remarks> public static byte[] SignMessageBytes(byte[] messageBytes, X509Certificate2 signerCertificate) { const string ID_FNC = "[FirmaBytesMensaje]"; try { // Pongo el mensaje en un objeto ContentInfo (requerido para construir el obj SignedCms) var contentInfo = new ContentInfo(messageBytes); var signedCms = new SignedCms(contentInfo); // Creo objeto CmsSigner que tiene las caracteristicas del firmante var cmsSigner = new CmsSigner(signerCertificate) { IncludeOption = X509IncludeOption.EndCertOnly }; if (VerboseMode) Console.WriteLine(ID_FNC + "***Firmando bytes del mensaje..."); // Firmo el mensaje PKCS #7 signedCms.ComputeSignature(cmsSigner); if (VerboseMode) Console.WriteLine(ID_FNC + "***OK mensaje firmado"); // Encodeo el mensaje PKCS #7. return signedCms.Encode(); } catch (Exception ex) { throw new Exception(ID_FNC + "***Error al firmar: " + ex.Message); } } 这在本地主机环境中完美运行。但是当我将其发布到 Azure 应用程序服务时,它失败并出现错误: The system cannot find the file specified. 正在排队 signedCms.ComputeSignature(cmsSigner); 不知道可能是什么原因。如果有人有关于应用程序服务需要的任何额外配置的信息,这对我会有很大帮助。非常感谢! 让 SignMessageBytes 方法在 Azure 环境中工作 尝试更改以下代码: // Find the certificate by thumbprint X509Certificate2Collection certs = store.Certificates.Find( X509FindType.FindByThumbprint, "your-thumbprint", false ); if (certs.Count > 0) { X509Certificate2 signerCertificate = certs[0]; // Continue with signing using signerCertificate } else { throw new Exception("Certificate not found."); } 将“您的指纹”替换为您证书的实际指纹。

回答 1 投票 0

如何将 xmlns:tns="http://schemas.xmlsoap.org/soap/encoding/" 添加到肥皂请求

我编写了一个调用soap服务的客户端,但它发送的请求不是我所期望的。 这是我的代码: 公共MessageResponse traGiayToHoSo(MessageRequest请求){ 留言乱七八糟...

回答 1 投票 0

Spring Boot 3 更新:没有“jakarta.xml.ws.WebServiceContext”类型的合格 bean 可用

从 Spring Boot 2.7 更新后。到版本 3 时,出现了奇怪的错误,即没有可用的“jakarta.xml.ws.WebServiceContext”类型的合格 bean。我按照迁移步骤进行操作(jav...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.