gpt4 book ai didi

java - 在 Talend 路由中使用特定版本的 Bean

转载 作者:行者123 更新时间:2023-12-02 08:56:36 24 4
gpt4 key购买 nike

我正在使用 Talend Open Studio for ESB (7.2.1) 创建 Apache Camel 路由。一个项目中包含多个路由,以及该路由的多个 Bean。

某些路由共享一些 bean,随着时间的推移,路由可能会与最新版本的 bean 不兼容 - 而且这种不兼容性仅在运行时甚至仅在特定情况下才会出现。

所以我的问题是:是否可以指定引用的 bean 的确切版本(因为所有必需的版本都存储在 Talend 项目中)?我认为这可能在 cBean 组件、cBeanRegister 组件、Spring 配置或路由依赖项的配置中实现? - 但没有找到任何相关文档或信息。

我的确切问题是这个异常:

org.apache.camel.component.bean.AmbiguousMethodCallException: Ambiguous method invocations possible: [public static void beans.ArticleGroupHandler.handleGroup(org.apache.camel.Exchange), public static void beans.ArticleGroupHandler.handleNavisionGroups(org.apache.camel.Exchange)].

首先,bean 中仅存在 public static void beans.ArticleGroupHandler.handleGroup(org.apache.camel.Exchange) 方法,因此我使用了 cBean 组件没有方法规范有效。在不同的路由中更新后,添加了方法 public static void beans.ArticleGroupHandler.handleNavisionGroups(org.apache.camel.Exchange) ,并且第一个路由的新构建导致了上述异常执行。

我知道我可以通过指定要使用的确切方法来解决该异常,但我想知道将来是否可以通过指定 bean 版本来规避此类问题。

最佳答案

Talend Bean 版本涉及源版本控制。将其视为 Git 存储库中的标记提交。您只能使用当前版本,该版本是在您构建或发布路线时与您的路线一起编译的。

要在应用程序中支持同一 bean 的多个版本,请尝试复制带有版本号后缀的它,例如 V1V2 等。这将使所有版本都不同可在路由的类路径中访问,您可以将它们引用为 beans.MyBeanV1beans.MyBeanV2 等。

关于java - 在 Talend 路由中使用特定版本的 Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60451704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com