如何在servicemix中使用多个jar版本

时间:2012-12-06 02:29:03

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

我正在使用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

有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

您需要使用OSGi导入|导出并让您的2个蓝图包导入他们使用的确切版本(或范围)。所以蓝图A导入[1.0,2)。而蓝图B导入[2.0,3)。然后例如A导入所有1.x版本。 B导入所有2.x版本。您可以谷歌了解版本范围的OSGi语法。

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

答案 1 :(得分:0)

你不能让同一个类加载器加载同一个类的不同版本。您是否无法获得蓝图1以使用模型2?