WebLogic 12.2.1:使用EAR中的版本覆盖common_modules中的Jackson库

时间:2019-03-18 21:53:51

标签: spring jackson weblogic12c

鉴于在WebLogic 12.2.2.1上部署了Jackson 2.8.10的Spring 4.3.11-RELEASE Web应用程序中,我们遇到了问题,因为正在加载的Jackson版本是WLS {{1}中的旧版本}树,该树优先于其他库。

我们尝试了以下操作:

  1. 在weblogic.xml中添加首选项语句

oracle_common/modules <prefer-application-packages> <package-name>com.fasterxml.jackson.*</package-name>

运行带有</prefer-application-packages>标志的操作清楚地表明正在加载不良的jar:

  

[从以下位置加载了com.fasterxml.jackson.databind.type.ArrayType   文件:/u01/oracle/oracle_common/modules/com.fasterxml.jackson.core.jackson-databind.jar]

  1. 将com.fasterxml.jackson。* jar文件放入域-verbose:class文件夹中

没有任何效果。

另外,请注意,这是一个共享的WebLogic实例,在该实例中,我们仅具有对域文件夹的写访问权,因此我们无法进行创造性的创意,例如从oracle_common文件夹中物理删除有问题的旧版Jackson罐子,或弄乱patch_classpath或类似。

任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:0)

问题是prefer-application-packages指令被放入EAR内WAR包内的weblogic.xml中,并且类路径未按正确的顺序进行选择:

foo-ear -> foo.war -> WEB-INF/weblogic.xml

我们通过将指令置于EAR级别解决了它: foo-ear -> META-INF -> weblogic-application.xml

现在它可以正常工作了。