在同一服务器上激活的同一Weblogic共享库的多个版本

时间:2013-03-21 11:36:44

标签: java ejb shared-libraries weblogic11g

尝试在同一个weblogic服务器上部署同一个共享库的两个不同版本时遇到问题。

这是我的目标:

  • 我有多个引用共享库的应用程序;
  • 那些应用程序应该能够使用这个共享库的不同实现版本(在一个非常好的世界中);
  • 所以我想部署这个共享库的多个版本(例如:AppB使用版本1.0.0,AppA使用1.0.1)。

我认为(知道吗?)这是可能的(我在weblogic考试中看到同一个共享库的多个版本可以在同一时间部署和激活)但直到现在我都失败了......

Weblogic对两个共享库具有相同名称这一事实感到不满......但我的应用程序需要使用这些“同名”来使用这些共享库...

我的META-INF文件是:

Extension-Name: app-local-services-ejb
Implementation-Version: 2.0.2-SNAPSHOT
Specification-Version: 2.0

Extension-Name: app-local-services-ejb
Implementation-Version: 2.0.1-SNAPSHOT
Specification-Version: 2.0

我的应用程序的weblogic-application文件我只使用web-inf的扩展名和规范版本......

我试过用两个不同版本的JSF做同样的事情,但我遇到了同样的问题。 关于共享库的Oracle文档并不是很清楚,我在goole / bing上找不到有用的东西。

我不知道是否必须在特定文件夹中上传这些共享库(例如:weblogic / commom / deployable-libraries),或者我是否必须在WEB-INF / weblogic-application.xml文件中指定某些内容?

有没有人有想法解决这个问题?

2 个答案:

答案 0 :(得分:0)

您可以将应用程序分成两个.ear / .war文件,每个文件都有自己需要使用的库版本吗?这似乎是解决这个问题的最简单方法。

答案 1 :(得分:0)

您只能在WLS中同时拥有一个版本具有相同规格版本的库。

要启用新的实现版本,您必须使用新jar 更新现有部署,而不是部署新版本。如果WLS可以解决这个问题,这将删除编号较低的实现版本。

这就是为什么让规范版本和实现版本成为浮点数是一个非常好的想法,因为如果可以将其转换为浮点数,WLS可以更容易地计算哪个版本高于另一个版本。“ p>

但是,如果您有一个具有不同规格编号的库,您可以愉快地将其与其他规格编号同时上传。同样,如果WLS可以计算出版本号,它可以自动将应用程序转换为新版本,前提是它们的weblogic-application.xml中没有设置精确版本。

相关问题