PQ57023: AAT/390 CLASS LOADER DOES NOT 'FIND' A CLASS, EVEN THOUGH ITS INA PROPER LOCATION ACCORDING TO J2EE SPEC.

APAR status
Closed as fixed if next.

Error description
After applying PTF UQ59197 to control the search algorithm used
by the AAT/390 tool used by the classloader.  Specicically,
option '2', which specifies that the classloader 'sees' all
classes in the application in all contexts.
This allows use of a package structure where classes that are
used by EJBs and web appl.s are packaged as part of the Web app.
(stored under ".../WEB-INF/lib" in this case).
   During the import of the .ear file an error message stating
org/grnds/facility/factory/GrndsFactoryException class could not
be found, even though it is in a .jar file, properly defined
within the ear file.   (This class name will of course change
based on the application being processed.)
Local fix
Place the .jar file that holds the 'missing' class into the
AAT_USER_PATH environment variable.  AAT should then be able to
'find' the class there.
Problem summary
****************************************************************
* USERS AFFECTED: All users of WebSphere Application Server    *
*                 V4.0 for z/OS and OS/390.                    *
****************************************************************
* PROBLEM DESCRIPTION: Sometimes while importing an EAR file   *
*                      into AAT/390, message pops up asking    *
*                      for missing classes although the class  *
*                      that it claims is missing is contained  *
*                      within the WAR file's /WEB-INF/lib dir, *
*                      another EjbJAR file's / dir, or EAR     *
*                      file's / dir as a jar file.             *
****************************************************************
* RECOMMENDATION:                                              *
****************************************************************
In rare cases where an EAR file that contains both EjbJARs and
WARs may experience false claims of missing class even though
class that AAT/390 claims missing is in fact located within
/WEB-INF/lib dir as a jar file within WAR, / dir as a jar
file within another EjbJAR or / dir as a jar file within EAR.

e.g.

If an EAR that a user is trying to import into AAT/390 has the
following structure, while AAT tries to reflect all methods
of Hello EJB stored within an EjbJAR file, classloader mechanism
used within AAT may face the following problem:

=> inherits/extends
-> references

Trying to reflect all methods in HelloHome interface will cause
HelloRemote class to be loaded due to reference. HelloRemote
extends Hello class & therefore Hello gets loaded under the
cover. Hello residing in war1.war->WEB-INF/lib/WarClasses.jar
references several classes including the following:

EmployeeInformationValue.class
TargetEntitlement.class
GrndsFactoryException.class

s1.ear:
 META-INF/application.xml
 ejb1.jar (EjbJAR)
 web1.war (WebApp)

 ejb1.jar:
  META-INF/ejb-jar.xml
  com/s1/HelloRemote.class  => Hello.class
  com/s1/HelloBean.class
  com/s1/HelloHome.class    -> HelloRemote.class
  :

 war1.war:
  WEB-INF/web.xml
  WEB-INF/classes/com/s1/HelloServlet.class
  WEB-INF/lib/WarClasses.jar
  WEB-INF/lib/grnds_s1.jar
  Hello.html
  pretty.gif
  :

  WarClasses.jar:
   com/s1/Hello.class
    +-> EmployeeInformationValue.class
    +-> TargetEntitlement.class
    +-> GrndsFactoryException.class
   com/s1/EmployeeInformationValue.class
   com/s1/TargetEntitlement.class
   :

  grnds_s1.jar:
   org/grnds/GrndsFactoryException
   :

NoClassDefFoundError is thrown for GrndsFactoryException which
is NOT included within the same JAR as the first two classes
that Hello.class references due to current ClassLoader's
inability to delegate classes not found during class loading
between sibling Jar/Zip files contained within a J2EE Module
archive (i.e. EjbJAR, WAR, etc).
Problem conclusion Temporary fix Comments
This APAR is being closed FIN with concurrence from the
submitting customer. A solution to this problem will be
delivered in a WebSphere Application Server for z/OS
and OS/390 release within the next 18 month.
.
A fix for the problem reported by this APAR has been
provided in PTF UQ65454 of WebSphere Application Server
V4.0.1 for z/OS and OS/390.
APAR information
APAR number PQ57023
Reported component name WASKBASE
Reported component ID 5655A9801
Reported release 401
Status CLOSED FIN
PE NoPE
HIPER NoHIPER
Submitted date 2002-01-23
Closed date 2002-02-04
Last modified date 2002-07-24

APAR is sysrouted FROM one or more of the following:

APAR is sysrouted TO one or more of the following:

Modules/Macros

Fix information

Applicable component levels
R401 PSN    UP


Document Information


Product categories: Software > Application Servers > Distributed Application & Web Servers > WebSphere Application Server for z/OS
Operating system(s):
Software version: 401
Software edition:
Reference #: PQ57023
IBM Group: Software Group
Modified date: Jul 24, 2002