PK01223: CLASSNOTFOUNDEXCEPTION ON BEAN CLASS THROWN WHEN GETEJBMETADATA CALLED ON EJBHOME FROM EJB CLIENT PACKAGED WITH EJB CLIENT STUBS | |||||||||||||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||||||||||||
![]() APAR status Closed as program error. Error description An EJB is installed on WebSphere Application Server 5.0.2.x. A remote EJB client accesses the EJB and calls getEJBMetaData on the EJBHome interface. No problem exists if the full EJB jar file is packaged with the client, but if only the client stubs are packaged with the client, the following exception is thrown: java.lang.ClassNotFoundException: <bean class> at java.net.URLClassLoader.findClass(URLClassLoader.java(Inlined Compiled Code)) at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.jav a(Compiled Code)) at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code)) at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code)) at com.ibm.ws.ejb.portable.EJBMetaDataImpl.readObject(EJBMetaDataIm pl.java:316) ...Local fix Package the full EJB jar file with the EJB client.Problem summary **************************************************************** * USERS AFFECTED: All users of WebSphere Application Server * * V5.0 for z/OS * **************************************************************** * PROBLEM DESCRIPTION: When a remote EJB client accesses an * * EJB installed on WebSphere Application * * Server 5.0.2 and calls getEJBMetaData * * on its EJBHome interface, the * * following exception is thrown: * * java.lang.ClassNotFoundException: * * <bean class> * * at * * java.net.URLClassLoader.findClass * * (URLClassLoader.java * * (InlinedCompiled Code)) * * at * * com.ibm.ws.bootstrap.ExtClassLoader. * * findClass(ExtClassLoader.java * * (CompiledCode)) * * at * * java.lang.ClassLoader.loadClass * * (ClassLoader.java(CompiledCode)) * * at * * java.lang.ClassLoader.loadClass * * (ClassLoader.java(CompiledCode)) * * at * * com.ibm.ws.ejb.portable.EJBMetaDataImpl * * .readObject(EJBMetaDataImpl.java:316) * **************************************************************** * RECOMMENDATION: * **************************************************************** In order to determine the bean's implementation class name while deserializing the bean reference on the client side, Class.forName() was being driven. Since the bean implementation class is appropriately not available on the client side, the result is the ClassNotFoundException. This was occurring simply due to the serializable nature of the reference and the fact that the bean's implementation classname (a string) was declared as a non-transient field, which implies that it must be derived at deserialization time.Problem conclusion The code was altered to declare the bean implementation classname as a transient field. Additionally, the serialization methods readobject and writeObject were updated to perform the corresponding serialization actions for this new transient field, ensuring that the stringified class name is serialized with the object itself. APAR PK01223 is associated with SERVICE LEVEL W502027 of WebSphere Application Server V5.0 for z/OS.Temporary fix Comments ž**** PE05/04/19 PTF IN ERROR. SEE APAR PK04495 FOR DESCRIPTION
APAR is sysrouted FROM one or more of the following: PK01124 APAR is sysrouted TO one or more of the following: UK02023 Modules/Macros
Publications Referenced
|
Document Information |
Current web document: swg1PK01223.html
Product categories: Software > Application Servers >
Distributed Application & Web Servers > WebSphere Application
Server for z/OS
Operating system(s):
Software version: 500
Software edition:
Reference #: PK01223
IBM Group: Software Group
Modified date: Aug 21, 2007
(C) Copyright IBM Corporation 2000, 2009. All Rights Reserved.