Download
Abstract
EJBDeploy fails to generate the deployment code if the application contains common-logging code and makes use of custom mappings.
Download Description
PM43711 resolves the following problem:
ERROR DESCRIPTION:
EJBDeploy may fail with the following error:
Caused by: rg.apache.commons.logging.LogConfigurationException:
Class org.apache.commons.logging.impl.Jdk
14Logger does not implement Log
at
org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor
(LogFactoryImpl.java:416)
at
org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFa
ctoryImpl.java:525)
... 76 more
Caused by: org.apache.commons.logging.LogConfigurationException:
Class org.apache.commons.logging.impl.Jdk14Logger does not
implement Log
at
org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor
(LogFactoryImpl.java:412)
... 77 more
LOCAL FIX:
PROBLEM SUMMARY
USERS AFFECTED:
All users of the IBM WebSphere Application Server EJBDeploy tool.
PROBLEM DESCRIPTION:
EJBDeploy fails to generate the deployment code if the application contains common-logging code and makes use of custom mappings.
RECOMMENDATION:
None
The problem was caused by limitation places on classloader by commons logging described in
http://wiki.apache.org/commons/Logging/FrequentlyAskedQuestions
In the EJBDeploy scenario multiple classloaders are loading the
LogFactory:
[LogFactory from java.net.URLClassLoader@1905488275] [ENV] Class
org.apache.commons.logging.LogFactory was loaded via classloader
java.net.URLClassLoader@1905488275
[LogFactory from java.net.URLClassLoader@1905488275] [ENV]
Ancestry of classloader which loaded
org.apache.commons.logging.LogFactory is
java.net.URLClassLoader@1905488275 ==
'java.net.URLClassLoader@71937193'
[LogFactory from java.net.URLClassLoader@1905488275] [ENV]
Ancestry of classloader which loaded
org.apache.commons.logging.LogFactory is ClassLoader
tree:java.net.URLClassLoader@1905488275 --?
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@1446729
--?
org.eclipse.osgi.baseadaptor.BaseAdaptor$ParentClassLoader@16565
--? BOOT
PROBLEM CONCLUSION:
The limitation can be worked around by restoring the context classloader of the EJBDeploy thread after all the EJBDeploy code generation but before RMIC is called upon the generated code. That
way the commons-logging library and custom converter can be used.
The fix for this APAR is currently targeted for inclusion in fix pack 7.0.0.21. Please refer to the Recommended Updates page for delivery information:
http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg27004980
Prerequisites
Please download the UpdateInstaller below to install this fix.
Installation Instructions
Please review the readme.txt for detailed installation instructions.
Technical Support
Contact IBM Support using SR (http://www.ibm.com/software/support/probsub.html), visit the WebSphere Application Server support web site (http://www.ibm.com/software/webservers/appserv/was/support/), or contact 1-800-IBM-SERV (U.S. only).
Problems (APARS) fixed
Was this topic helpful?
Document Information
Modified date:
15 June 2018
UID
swg24030845