鉴于在WebLogic 12.2.2.1上部署了Jackson 2.8.10的Spring 4.3.11-RELEASE Web应用程序中,我们遇到了问题,因为正在加载的Jackson版本是WLS {{1}中的旧版本}树,该树优先于其他库。
我们尝试了以下操作:
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]
-verbose:class
文件夹中没有任何效果。
另外,请注意,这是一个共享的WebLogic实例,在该实例中,我们仅具有对域文件夹的写访问权,因此我们无法进行创造性的创意,例如从oracle_common文件夹中物理删除有问题的旧版Jackson罐子,或弄乱patch_classpath或类似。
任何帮助都将不胜感激!
答案 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
现在它可以正常工作了。