【问题标题】:How to use multiple jar versions in servicemix如何在 servicemix 中使用多个 jar 版本
【发布时间】:2018-09-29 07:27:29
【问题描述】:

我正在使用apache-servicemix-4.4.1 -fuse-03-06 我有两个版本的同一个 jar,Model-1.0.jarModel-2.0.jar。两者都有相同的类和不同的方法。在我的部署文件夹中,我有两个蓝图项目blueprint-one.jarblueprint-two.jarblueprint-one.jar 使用 Model-1.0.jarblueprint-two.jar 使用 Model-2.0.jar

但是在部署文件夹中部署两个 jar 时,我得到了 NoSuchMethod exception

谁能帮我解决这个问题?

【问题讨论】:

    标签: java apache-camel apache-servicemix blueprint-osgi


    【解决方案1】:

    您需要使用 OSGi 导入|导出并让您的 2 个蓝图包导入它们使用的确切版本(或范围)。所以蓝图 A 导入 [1.0,2)。和蓝图 B 导入 [2.0,3)。然后例如 A 导入所有 1.x 版本。并且 B 导入所有 2.x 版本。您可以在 Google 上搜索版本范围的 OSGi 语法。

    并且您的模型包必须导出它们的版本号,例如 1.0.0,另一个是 2.0.0。

    【讨论】:

      【解决方案2】:

      你不能让同一个类加载器加载同一个类的不同版本。是不是不能拿到蓝图 1 来使用模型 2?

      【讨论】:

      • 我无法让 blueprint-one 使用 Model-1.0.jar。我迫切需要使用同一类的多个版本。有没有办法在骆驼上下文或 bean 声明部分指定版本号?
      • 他们需要在同一个camel实例下运行吗?
      猜你喜欢
      • 2017-10-25
      • 2015-08-11
      • 2013-04-11
      • 2012-02-11
      • 2018-04-28
      • 2013-10-24
      • 2011-08-18
      • 1970-01-01
      • 2017-12-16
      相关资源
      最近更新 更多