1

我在尝试在同一 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 文件中指定某些内容?

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

4

2 回答 2

2

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

于 2013-03-22T15:13:53.287 回答
1

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

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

这就是为什么将规范版本和实现版本设置为浮点数是一个非常好的主意,因为如果可以将其转换为浮点数,WLS 可以更轻松地确定哪个版本高于另一个版本。

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

于 2013-10-11T06:57:50.393 回答