2014-02-22 40 views
0

在我的web应用程序中,已经有一个版本为3.6.2的lucene-core jar,现在要在同一个项目中添加不同的功能,我需要最新版本的lucene-core jar,即4.4.0。我可以在java中保存两个不同版本的罐子吗?

当我用先前的jar替换最新的jar时,它会抛出编译错误,因为向后兼容性不是由Lucene维护的。

我新添加的功能在3.6.2版本上不起作用。我知道不可能将两个jar版本都保存在lib中。请提出解决方案。

回答

1

哦,是的,罐子地狱!

如果可能的话,将您的Lucene功能移动到一个单独的层(如web服务),并作为web服务客户端从您的web应用程序访问此服务。当然,这意味着某种开销(网络等)。

另一种可能性是使用允许为Web应用程序提供服务的OSGI解决方案,例如JBoss Fuse。将你的Lucene功能移动到单独的模块(每个模块使用不同的Lucene版本)并将服务导入到Web应用程序中。其优点是,使用此解决方案,您可以直接访问服务而无需网络开销。

+0

我也想到web服务解决方案,但OSGI解决方案看起来不错。我不知道这一点。我会为此尝试。 谢谢 – user3340357

+0

你解决了你的问题吗?如果是,我想知道你是如何做到的。 –

相关问题