以下の Endpoint_BPS_CreateCaseService/UpdateCaseService エンドポイントは両方とも、WSO2 BPS で実行されている一方向の BPEL サービスを指しています。WSO2 BPS は、呼び出されるとすぐに HTTP 202 承認済みメッセージを返します。
私が使用しているクライアント アプリケーションは、応答として有効な SOAP エンベロープを取得しない場合にエラーをスローするため、ESB でプロキシ サービスを使用して BPEL プロセスをラップします。
WSO2 ESB プロキシ サービスを使用して SOAP エンベロープを以下の Endpoint_BPS_* に転送し、クライアント アプリに SOAP エンベロープ応答を返すにはどうすればよいですか?
また、いずれかのエンドポイントが利用できないかタイムアウトになった場合に、faultSequence "ProcessFault" を実行したいと考えています。以前、上記の応答の問題を回避するために OUT_ONLY を使用しましたが、これはエンドポイントの問題を検出できないことを意味します。どういうわけか両方を行うことができない限り?
私が試した別のことは、メッセージのクローンを作成することですが、これは少し面倒でした。
どんな助けでも大歓迎です
<proxy xmlns="http://ws.apache.org/ns/synapse" name="BPSProxyService" transports="https,http" statistics="disable" trace="enable" startOnLoad="true">
<target faultSequence="ProcessFault">
<inSequence>
<log level="full">
<property name="MESSAGE" value="BEGIN BPSProxyService" />
</log>
<switch source="//*[local-name()='Operation']">
<case regex="create">
<send>
<endpoint key="Endpoint_BPS_CreateCaseService" />
</send>
</case>
<case regex="update">
<send>
<endpoint key="Endpoint_BPS_UpdateCaseService" />
</send>
</case>
</switch>
</inSequence>
<outSequence>
<property name="HTTP_SC" value="200" scope="axis2" />
<class name="esb.mediators.InjectSOAPEnvelope" />
<log level="full">
<property name="MESSAGE" value="END BPSProxyService" />
</log>
<send />
<drop />
</outSequence>
</target>
<publishWSDL key="common/bpsproxyservice/bpsproxyservice.wsdl">
<resource location="schema.xsd" key="common/schema_v2.xsd" />
</publishWSDL>
</proxy>