繁体   English   中英

从BPS(BPEL)到ESB的WSO2请求缺少soapAction标头

[英]WSO2 requests from BPS (BPEL) to ESB with missing soapAction header

我正在使用WSO2 BPS 3.2.0,WSO2应用程序服务器5.2.1和WSO2身份服务器5.0.0。 我制作了BPS流程,该流程通过HTTPS与基本身份验证安全的ESB代理服务进行通信。 工艺有肥皂作用的问题。 请求以故障响应结束:

<message><fault><faultcode xmlns:soapenv="http://schemas.xmlsoap.org/soa...">axis2ns10:Client</faultcode><faultstring xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">The endpoint reference (EPR) for the Operation not found is /services/RepositoryService and the WSA Action = . If this EPR was previously reachable, please contact the server administrator.</faultstring></fault></message>

我使用此博客中的统一端点(UEP)。

<wsa:EndpointReference
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.w3schools.com uep_schema.xsd"
    xmlns:wsa="http://www.w3.org/2005/08/addressing"
    xmlns:wsdl11="http://schemas.xmlsoap.org/wsdl/">
    <wsa:Action>http://docs.oasis-open.org/ns/cmis/ws/200908/RepositoryServicePort/getRepositoriesRequest</wsa:Action>
    <wsa:Metadata>
       <id>SInvokeEPR</id>
       <transport type="http">
       <authorization-username>user</authorization-username>
       <authorization-password>pass</authorization-password>
       </transport>
   </wsa:Metadata>
</wsa:EndpointReference>

我发现分配有一些可能性

<bpel:literal>
<wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing">http://docs.oasis-open.org/ns/cmis/ws/200908/RepositoryServicePort/getRepositoriesRequest</wsa:Action>
</bpel:literal>

输出变量属性

<bpel:to variable="RepositoryServicePLRequest" header="Action"></bpel:to>

但这是行不通的。 但是我发现当我在ESB中启用SOAP Message Tracer时,它开始工作。 为什么?

您可以在这篇文章中使用修复
添加参数

<parameter name="disableOperationValidation" locked="false">true</parameter>

到WSO2 ESB中的代理配置

最近两天我一直在解决这个问题。 我对您的问题和答案有几点要点。 让您知道我没有ESB,所以我有同样的问题,但是我不能使用这种方法来解决。

首先检查您的第一个链接,您将看到没有wsa:Action,因此您需要指定wsa:address。

第二个问题是您的SOAPACTION未设置。 如果使用SOAP 1.1,则需要此标头,因此BPS会为您将其设置为“”,但是大多数服务器都需要实际操作。 为了解决这个问题,您需要在epr文件中启用addressing。 这有点令人困惑,因为它添加了适当的ws寻址信息,但是它控制与之无关的SOAPACTION。

因此,要解决该问题,只需将您的epr设置如下:

<wsa:EndpointReference
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com uep_schema.xsd"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:wsdl11="http://schemas.xmlsoap.org/wsdl/">
**<wsa:Address>http://docs.oasis-open.org/ns/cmis/ws/200908/RepositoryServicePort</wsa:Address>**
<wsa:Metadata>
   <id>SInvokeEPR</id>
   <transport type="http">
   <authorization-username>user</authorization-username>
   <authorization-password>pass</authorization-password>
   </transport>
   **<qos>
        <enableAddressing version="final" separateListener="true"/>
    </qos>**

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM