📄 testimplicitfaulthandler.bpel
字号:
<!-- ~ Licensed to the Apache Software Foundation (ASF) under one ~ or more contributor license agreements. See the NOTICE file ~ distributed with this work for additional information ~ regarding copyright ownership. The ASF licenses this file ~ to you under the Apache License, Version 2.0 (the ~ "License"); you may not use this file except in compliance ~ with the License. You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, ~ software distributed under the License is distributed on an ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ~ KIND, either express or implied. See the License for the ~ specific language governing permissions and limitations ~ under the License.--><process xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://docs.oasis-open.org/wsbpel/2.0/process/executable ../../../../../../../bpel-schemas/src/main/resources/wsbpel_executable.xsd" xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:tns="http://ode/bpel/unit-test/testImplicitFaultHandler" xmlns:flt="http://ode/bpel/unit-test/FaultService.wsdl" xmlns:prb="http://ode/bpel/unit-test/ProbeService.wsdl" xmlns:wns="http://ode/bpel/unit-test/testImplicitFaultHandler.wsdl" xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" targetNamespace="http://ode/bpel/unit-test/testImplicitFaultHandler" name="testImplicitFaultHandler" suppressJoinFailure="yes" queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0" expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"> <!-- test embeded fault and comp handlers in invokes --> <!-- the first no op invoke will install a comp handler --> <!-- the second invoke will generated an error and handle it --> <!-- the error hanndling will throw and error which is not handled --> <!-- this will cause implicit compensation on the installed comp handler --> <!-- that comp handler will throw an error out of the process --> <import location="TestImplicitFaultHandler.wsdl" namespace="http://ode/bpel/unit-test/testImplicitFaultHandler.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/> <import location="../ProbeService/probeService.wsdl" namespace="http://ode/bpel/unit-test/ProbeService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/> <import location="../FaultService/faultService.wsdl" namespace="http://ode/bpel/unit-test/FaultService.wsdl" importType="http://schemas.xmlsoap.org/wsdl/"/> <partnerLinks> <partnerLink name="request" partnerLinkType="wns:testImplicitFaultHandlerRequest" myRole="testImplicitFaultHandlerService"/> <partnerLink name="probe" partnerLinkType="wns:probeRequest" partnerRole="probeService" initializePartnerRole="yes"/> <partnerLink name="fault" partnerLinkType="wns:faultRequest" partnerRole="faultService" initializePartnerRole="yes"/> </partnerLinks> <variables> <variable name="request" messageType="wns:requestMessage"/> <variable name="reply1" messageType="wns:replyMessage"/> <variable name="reply2" messageType="wns:replyMessage"/> <variable name="fault" messageType="flt:faultMessage"/> <variable name="faultResponse" messageType="flt:faultMessage"/> <variable name="probeInput" messageType="prb:probeMessage"/> </variables> <faultHandlers> <catch faultName="tns:fault"> <compensate/> </catch> </faultHandlers> <sequence> <receive name="receive1" partnerLink="request" portType="wns:testImplicitFaultHandlerPT" operation="request" variable="request" createInstance="yes"> </receive> <assign> <copy> <from variable="request" part="requestID"/> <to variable="probeInput" part="probeName"/> </copy> <copy> <from variable="request" part="requestText"/> <to variable="probeInput" part="probeData"/> </copy> </assign> <invoke name="probe" partnerLink="probe" portType="prb:probeMessagePT" operation="probe" inputVariable="probeInput" outputVariable="probeInput"> <compensationHandler> <sequence> <throw faultName="tns:faultFromCompensationHandlerInInvoke"/> </sequence> </compensationHandler> </invoke> <assign> <copy> <from>$request.requestID</from> <to variable="fault" part="faultName"/> </copy> <copy> <from>$request.requestText</from> <to variable="fault" part="faultData"/> </copy> <copy> <from>$request.faultIndicator1</from> <to>$fault.faultIndicator1</to> </copy> <copy> <from>$request.faultIndicator2</from> <to>$fault.faultIndicator2</to> </copy> </assign> <invoke name="throwTestFault" partnerLink="fault" portType="flt:faultMessagePT" operation="throwFault" inputVariable="fault" outputVariable="faultResponse"> <catch faultName="flt:FaultMessage1" faultVariable="testError" faultMessageType="flt:errorMessage"> <sequence> <assign> <copy> <from>'caught FaultMessage1'</from> <to variable="reply2" part="replyText"/> </copy> </assign> <throw faultName="tns:fault"/> </sequence> </catch> </invoke> <reply name="reply" partnerLink="request" portType="wns:testImplicitFaultHandlerPT" operation="request" variable="reply2"> </reply> </sequence></process>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -