首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在初始化上下文之后以编程方式添加新的Mule流?

是否可以在初始化上下文之后以编程方式添加新的Mule流?
EN

Stack Overflow用户
提问于 2014-11-05 18:08:02
回答 1查看 554关注 0票数 1

我想在Mule运行时(在上下文初始化之后)以编程方式添加新的RSS连接器流。当我尝试这样做时,我会得到一个生命周期异常,说明上下文已经初始化了。

有没有办法做到这一点而不重新启动整个上下文?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-05 23:43:25

我自己想出了解决办法。结果是,创建一个新的Mule上下文,添加我的流,然后启动上下文,效果很好。事实上,与我所走的另一条路相比,这条路更简单、更快、更干净。

创建默认的Mule上下文对我来说很好。如果您有特殊的需求,您可能需要向您的ConfigurationBuilder添加一个。

代码语言:javascript
运行
复制
MuleContext newMuleContext = new DefaultMuleContextFactory().createMuleContext();
MuleRegistry registry = newMuleContext.getRegistry();
Flow flow = createFlow();
registry.registerFlowConstruct(flow);
newMuleContext.start();

编辑。这是createFlow方法。根据您的应用程序的需求,您的具体情况将有所不同。

代码语言:javascript
运行
复制
protected Flow createFlow(MuleContext context, RssBean feed) throws Exception {
  MuleRegistry registry = context.getRegistry();
  String feedName = feed.getName();
  HttpPollingConnector connector = getHttpPollingConnector(context, registry, feedName);
  EndpointURIEndpointBuilder endpointBuilder = getEndpointBuilder(context, feed, registry, shortName, connector);
  registry.registerEndpointBuilder(feedName + ".in", endpointBuilder);
  MessagePropertiesTransformer transformer = getTransformer(context, feedName);
  MessageProcessor mp = getOutboundFlowRef(context);
  Flow flow = getFlow(context, shortName, endpointBuilder, transformer, mp);
  registry.registerFlowConstruct(flow);
  return flow;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26764093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档