mule顺序流以等待另一个流

mule顺序流以等待另一个流,mule,Mule,主流程:或流程A <mule> <flow name="GetQBClassesFlow1" doc:name="GetQBClassesFlow1" processingStrategy="synchronous"> <http:inbound-endpoint exchange-pattern="request-response" host="${hostname}" port="${port}" path="getClasses" do

主流程:或流程A

<mule>
    <flow name="GetQBClassesFlow1" doc:name="GetQBClassesFlow1" processingStrategy="synchronous">
        <http:inbound-endpoint exchange-pattern="request-response" host="${hostname}" port="${port}" path="getClasses" doc:name="HTTP"/>
        <flow-ref name="Authenticate-QB" doc:name="Flow Reference"/>
        <logger message="=========Acc Token==========#[sessionVars['accessToken']]" level="INFO" doc:name="Logger"/>
        <flow-ref name="GetQBClassesFlow2" doc:name="Flow Reference"/>
    </flow>
    <flow name="GetQBClassesFlow2" doc:name="GetQBClassesFlow2" processingStrategy="synchronous">
        <logger message="=========Acc Token 2==========#[sessionVars['accessToken']]" level="INFO" doc:name="Logger"/>
    </flow>
</mule>

Authenticate QB
流设计为由最终用户通过HTTP调用,以便执行OAuth2舞蹈


因此,您不能使用
flow ref
调用它。身份验证部分在流执行的任何其他操作的带外完成。

我看到流:
Authenticate QB
qbAccessToken
GetQBClassesFlow1
GetQBClassesFlow2
。您能否编辑您的问题并使用真名而不是
A
B
?很难理解你指的是什么。@DavidDossot,我已经给出了完整的流程,没有其他代码存在。它连接到intuit Quickbooks。Authenticate QB是在Authenticate流中定义的全局元素。qbAccessToken是身份验证流中的流名称。GetQBClasseFlow1和GetQBClasseFlow2是主流中的流名称。让我重新表述我的问题。
流A(上面的主流)
是名为
getqbclasseflow1
的流还是
流B(上面的身份验证流)
是名为
getqbclasseflow2
的流?它看起来是这样的,因为您说
流A调用流B
,唯一的
流ref
介于
getqbclasseflow1
getqbclasseflow2
之间。如果您可以在问题中使用真实的流名称,而不是
A
B
@DavidDossot,则会更容易。我有许多应用程序可以对quickbooks进行身份验证。我考虑过重构用于身份验证的代码,编写用于身份验证的单个代码,并使代码可重用,而不是在每个用于身份验证的流中编写100次,编写一次并在所有流中使用。还有什么可以处理我的情况吗?我真的不明白你的问题。您只需要
Authenticate QB
qbAccessToken
为每个Mule应用程序流一次。这个Mule应用程序可以包含许多流。我有10个Mule xml文件用于不同的任务,每个任务都需要身份验证。对于用户需要身份验证的所有任务,这里我必须对每个xml文件进行身份验证,不能有一个用于身份验证的通用xml文件并重用它。这10个Mule xml文件是在一个Mule应用程序中还是在10个Mule应用程序中?所有这些文件都在一个应用程序中。我面临的问题是,正如我前面解释的,无法为身份验证代码创建公共组件。
<mule ...>
    <quickbooks:config name="QBAuthenticate" consumerKey="${consumerKey}" consumerSecret="${consumerSecret}" doc:name="Quickbooks Online - Authenticate"/>
    <flow name="Authenticate-QB" doc:name="Authenticate-QB" processingStrategy="synchronous">
        <http:inbound-endpoint exchange-pattern="request-response" host="${hostname}" port="8989" doc:name="HTTP"/>
         <quickbooks:auth-user config-ref="Authenticate"
                    accessTokenUrl="https://oauth.intuit.com/oauth/v1/get_access_token"
                    authorizationUrl="https://appcenter.intuit.com/Connect/Begin"
                    callbackUrl="http://${hostname}:8989/getQBAccessToken"
                    requestTokenUrl="https://oauth.intuit.com/oauth/v1/get_request_token"
                    doc:name="Authenticate user" requestTokenId="tenantId"/>
    </flow>
    <flow name="qbAccessToken" doc:name="getAccessToken" processingStrategy="synchronous">
        <http:inbound-endpoint exchange-pattern="one-way" host="${hostname}" port="8989" path="getQBAccessToken" doc:name="Get Token"/>
        <logger message="=========GET QB Accounts ============" level="INFO" doc:name="Logger"/>
        <quickbooks:get-access-token config-ref="QBAuthenticate" doc:name="get access token"/>
        <logger message="=========realmId==============#[message.payload.realmId]" level="INFO" doc:name="Logger"/>
        <set-session-variable variableName="accessToken"
            value="#[message.payload.accessToken]" doc:name="Set accessToken" />
        <set-session-variable variableName="accessTokenSecret"
            value="#[message.payload.accessTokenSecret]" doc:name="Set accessTokenSecret" />
        <set-session-variable variableName="realmId"
            value="#[message.payload.realmId]" doc:name="Set realmId" />
    </flow>
</mule>
INFO  2014-08-20 11:18:03,830 [[qbprojects].connector.http.mule.default.receiver.03] org.mule.api.processor.LoggerMessageProcessor: =========Acc Token==========null
INFO  2014-08-20 11:18:03,831 [[qbprojects].connector.http.mule.default.receiver.03] org.mule.api.processor.LoggerMessageProcessor: =========Acc Token 2==========null
INFO  2014-08-20 11:18:12,712 [[qbprojects].connector.http.mule.default.receiver.03] org.mule.api.processor.LoggerMessageProcessor: =========GET QB Accounts ============
INFO  2014-08-20 11:18:12,944 [[qbprojects].connector.http.mule.default.receiver.03] org.mule.api.processor.LoggerMessageProcessor: =========realmId==============1345020