动态设置Twitter配置Mulesoft的值

时间:2016-01-14 09:48:59

标签: mule

使用mulesoft twitter连接器为twitter配置参数动态设置值,如下所示,

<twitter:config name="Twitter__Configuration" accessKey="#[flowVars.accessToken]"  consumerKey="#[flowVars.consumerKey]"       consumerSecret="#[flowVars.consumerSecret]" doc:name="Twitter: Configuration" accessSecret="#[flowVars.accessTokenSecret]"/>
<flow name="twitterFlow1">
    <db:select config-ref="MySQL_Configuration" doc:name="Database">
        <db:parameterized-query><![CDATA[select * from twittercredentials;]]></db:parameterized-query>
    </db:select>
    <set-variable variableName="consumerKey" value="#[message.payload[0]['consumerkey']]" doc:name="Variable" />
    <set-variable variableName="consumerSecret" value="#[message.payload[0]['consumersecret']]" doc:name="Variable" />
    <set-variable variableName="accessToken" value="#[message.payload[0]['accesstoken']]" doc:name="Variable" />
    <set-variable variableName="accessTokenSecret" value="#[message.payload[0]['accesstokensecret']]" doc:name="Variable" />
</flow>
<flow name="twitterFlow">
    <http:listener config-ref="HTTP_Listener_Configuration" path="/twitterconnect" doc:name="HTTP"/>
    <flow-ref name="twitterFlow1" />
    <twitter:show-user config-ref="Twitter__Configuration" doc:name="Twitter"/>
    <json:object-to-json-transformer doc:name="Object to JSON"/>
</flow>

但是在调用/ twitterconnect时会出现异常,

 Failed to connect/reconnect: Work Descriptor. Root Exception was: 401 response received, but no WWW-Authenticate header was p
 resent. Type: class java.lang.IllegalStateException

在twitter配置中使用硬编码值可以正常工作。有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

我认为这样做是行不通的,因为你实施了twitter:config只有一次并且是空的。 您应该找到创建新配置并将其注入twitter组件的方法。

答案 1 :(得分:0)

试试这个: 创建一个属性文件,并在带有引用的属性文件中写入AccessKey,AccessSecret,ConsumerKey,ConsumerSecret值,并在twitter连接器中输入$ {}的详细信息,并将引用放在大括号内。