在运行时动态获取Mule流的属性值

拱廊

我有一个要求,例如id将通过HTTP请求传递,并且根据该ID,我需要动态调用属性值。

对于一个ID,我需要以下属性 dgc.metamodel.CommunityToSync=Community1 dgc.metamodel.DomainToSync=Domain1

对于另一个ID,我需要像 dgc.metamodel.CommunityToSync=Community2 dgc.metamodel.DomainToSync=Domain2

有可能在this子中做到这一点吗?

苏丹王

AFAIK,将在首次运行服务器时读取属性文件。尽管有许多属性,但仅将引用一个键(唯一)。

但是,为了适应这一要求,我认为我们应该利用Java代码。此代码将负责根据请求(id)读取某些属性文件。然后读取属性并将其设置为变量以供进一步使用:

private Properties prop = new Properties();
private InputStream input = null;

public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException {    
    String id = ((ParameterMap)message.getInboundProperty("http.query.params")).get("id");
    input = getClass().getResourceAsStream("../property" + id + ".properties");
    prop.load(input);

    message.setInvocationProperty("communityToSync", prop.getProperty("dgc.metamodel.CommunityToSync"));
    message.setInvocationProperty("domainToSync", prop.getProperty("dgc.metamodel.DomainToSync"));

我用一个简单的流程进行了测试

<flow name="propertyFlow">
    <http:listener config-ref="HTTP_Listener_Configuration" path="/prop" allowedMethods="GET" doc:name="HTTP"/>
    <custom-transformer class="example.ReadProperty" doc:name="Java"/>
    <logger message="CommunityToSync = #[flowVars.communityToSync], DomainToSync = #[flowVars.domainToSync]" level="INFO" doc:name="Logger"/>
</flow>

通过浏览器执行它:http:// localhost:8081 / prop?id = 1http:// localhost:8081 / prop?id = 2以获取不同的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在运行时通过反射获取嵌套泛型类型对象的属性和属性值

来自分类Dev

在运行时动态分配属性

来自分类Dev

如何在运行时使用反射从类的对象获取属性的值

来自分类Dev

如何在运行时使用循环获取属性设置的当前值

来自分类Dev

在运行时获取application.properties属性?

来自分类Dev

Newtonsoft JSON在运行时获取特定的嵌套属性

来自分类Dev

是否可以在运行时获取yaml属性?

来自分类Dev

在运行时创建属性并传递值

来自分类Dev

在运行时更改属性文件中的值

来自分类Dev

在运行时获取Scala 2.10注释值

来自分类Dev

在运行时动态评估代码

来自分类Dev

在运行时动态加载jar?

来自分类Dev

在运行时动态创建类

来自分类Dev

在运行时动态实现委托

来自分类Dev

在运行时编辑动态记录

来自分类Dev

在运行时更改字段属性

来自分类Dev

在运行时更改persistenceUnit属性

来自分类Dev

在运行时无法读取属性

来自分类Dev

在运行时绑定属性

来自分类Dev

在运行时获取RelativeLayout的尺寸

来自分类Dev

Android:在运行时获取TargetSDKVersion

来自分类Dev

在运行时获取jar版本

来自分类Dev

在运行时获取服务版本

来自分类Dev

在运行时获取NoSuchMethodError

来自分类Dev

在运行时获取输入类型

来自分类Dev

在运行时获取服务版本

来自分类Dev

在运行时获取数据

来自分类Dev

在运行时注入值

来自分类Dev

在运行时更改宏的值