WebLogic Server Classloader is not following Class-Path entries in the manifest files of JAR or WAR files to locate the class to be loaded. (Doc ID 1498095.1)

Last updated on JUNE 09, 2016

Applies to:

Oracle WebLogic Server - Version 10.0 to 12.1.1.0
Information in this document applies to any platform.

Symptoms

 When upgrading  enterprise application from WLS 8.1 to WLS 11g. The ear contains a web project along with an ejb. EAR contains multiple libraries which are segregated into different folders like lib, lib-ext. lib-cust etc. EJB jar internally contains MANIFEST.MF which specifies the order in which jars to be loaded by class-loader. This loading is working perfect with WLS 8.1 but after upgrading to WLS 11g, we see that classes/jars are always getting loaded first from lib and then from lib-cust, even if the order in MANIFEST.MF file is reverse.

e.g. If there is class test, which is available in two different jars testLib.jar and testLibCust.jar. testLib.jar is available in EAR/lib folder where as testLibCust.jar is available in EAR/lib-cust folder.
EAR/EJB/MANIFEST.MF file specifies the order as lib-cust/testLibCust.jar and then lib/testLib.jar.
"Class-Path: lib-cust/testLibCust.jar lib/testLib.jar"

 

on the run-time extected is that app server should load lib-cust/testLibCust.jar as mentioned in MANIFEST.MF file but it is loading lib/testLib.jar.

This was not the case with WLS 8.1 whose Classloader loads per the ordering of Class-path entries.

Changes

 Upgraded from wls 8.1 to wls 10.3.4

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms