gpt4 book ai didi

wso2 - SOAPHeader 中缺少 ReplyTo 属性

转载 作者:行者123 更新时间:2023-12-01 11:47:40 25 4
gpt4 key购买 nike

我已经创建了一个 WS-BPEL 工作流,它会调用异步 Web 服务并等待回调响应。 Carbon 应用程序也已成功部署到 BPS。

关于我的外部异步网络服务的详细信息
1.需要通过http进行基本认证。
2. 要求香皂封套内有香皂头。
3. 它将处理请求并将回调发送到它在 soap header 中收到的 ReplyTo 地址,并使用 MessageID 关联回调。

我的 BPEL 流程的 deploy.xml 文件如下所示......

<?xml version="1.0" encoding="UTF-8"?>  
<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
xmlns:callback.integration.service="http://callback.integration.service/"
xmlns:epr="http://wso2.org/bps/bpel/endpoint/config"
xmlns:sample="http://wso2.org/bps/sample"
xmlns:ws.integration.service="http://ws.integration.service/">
<process name="sample:Test">
<active>true</active>
<retired>false</retired>
<process-events generate="all"/>
<provide partnerLink="client">
<service name="sample:Test" port="TestPort"/>
</provide>
<provide partnerLink="IntegrationService">
<service name="callback.integration.service:IntegrationCallback" port="IntegrationResponsePort"/>
</provide>
<invoke partnerLink="IntegrationService">
<service name="ws.integration.service:IntegrationService" port="IntegrationRequestPort">
<epr:endpoint endpointReference="IntegrationService.epr"/>
</service>
</invoke>
</process>
</deploy>

IntegrationService.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://http://server:8080/integration/IntegrationService</wsa:Address>
<wsa:Metadata>
<id>SInvokeEPR</id>
<qos>
<enableAddressing />
</qos>
<transport type="http">
<authorization-username>username</authorization-username>
<authorization-password>password</authorization-password>
</transport>
</wsa:Metadata>
</wsa:EndpointReference>

现在,当我从 carbon 服务管理控制台测试 bpel 流程时,我确实收到了对我的异步 Web 服务的请求。然而,soap 信封如下所示,它缺少用于发送回调的正确 ReplyTo 地址。

<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:To>http://server:8080/integration/IntegrationService</wsa:To>
<wsa:ReplyTo>
<wsa:Address>http://www.w3.org/2005/08/addressing/none</wsa:Address>
</wsa:ReplyTo>
<wsa:MessageID>urn:uuid:91ac4ebd-b100-440e-a01d-c4a5c0d8a56f</wsa:MessageID>
<wsa:Action>http://ws.integration.service/IntegrationRequestPortType/createTask</wsa:Action>
</soapenv:Header>
<soapenv:Body>
...
</soapenv:Body>
</soapenv:Envelope>

现在我需要用回调来回复这个请求。回调 soap 信封将包含此 MessageID,以便回调与正确的流程实例相关联。

如何将正确的 ReplyTo 地址附加到 soap header ?

最佳答案

如果我正确地假设您使用 WSO2 BPS(或 Apache ODE 的某些东西),您可以在分配中使用此副本来手动设置 header 。 ( http://ode.apache.org/extensions/headers-handling.html )

<bpel:copy>
<bpel:from>
<bpel:literal>
<wsa:ReplyTo xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Address>http://localhost:9763/services/SIServerCallback</Address>
</wsa:ReplyTo>
</bpel:literal>
</bpel:from>
<bpel:to variable="ServiceInvokerIARequest" header="ReplyTo">
</bpel:to>
</bpel:copy>

关于wso2 - SOAPHeader 中缺少 ReplyTo 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15200776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com