Tom Nelson created SHIRO-537:
--------------------------------
Summary: Class load issue in OSGI in ClassUtils
Key: SHIRO-537
URL: https://issues.apache.org/jira/browse/SHIRO-537
Project: Shiro
Issue Type: Bug
Affects Versions: 1.2.3
Environment: OSGi Felix 4.0.3
Reporter: Tom Nelson
I had the same issue that is described in:
http://stackoverflow.com/questions/20653146/how-to-load-class-in-an-osgi-e4-environment-while-using-shiro
where it was suggested a bug was entered but never was, so here it is. A
similar workaround worked for me:
Thread currentThread = Thread.currentThread();
ClassLoader originalCl = currentThread.getContextClassLoader();
try {
Class<?> clazz = ((InfrastructureServer)
server).getBundleContext().getBundle()
.loadClass(CustomRolePermissionResolver.class.getName());
ClassLoader bundleClassLoader = clazz.getClassLoader();
currentThread.setContextClassLoader(bundleClassLoader);
webappContext.deploy(httpServer);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
currentThread.setContextClassLoader(originalCl);
}
In addition, commons-collections 3.2.1 must be used in an OSGi environment, I
suggest bumping your dependency.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)