Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Auto Closed
-
7.0.4
-
None
-
None
Description
When I try to initialize OpenSAML in TomEE 7.0.4 with InitializationService.initialize(); I get
java.lang.ClassNotFoundException: com.google.common.base.Function
java.net.URLClassLoader.findClass(URLClassLoader.java:381)
java.lang.ClassLoader.loadClass(ClassLoader.java:424)
java.lang.ClassLoader.loadClass(ClassLoader.java:357)
net.shibboleth.utilities.java.support.xml.AttributeSupport.getAttributeValueAsQName(AttributeSupport.java:334)
org.opensaml.core.xml.config.XMLConfigurator.initializeObjectProviders(XMLConfigurator.java:231)
org.opensaml.core.xml.config.XMLConfigurator.load(XMLConfigurator.java:203)
org.opensaml.core.xml.config.XMLConfigurator.load(XMLConfigurator.java:188)
org.opensaml.core.xml.config.XMLConfigurator.load(XMLConfigurator.java:162)
org.opensaml.core.xml.config.AbstractXMLObjectProviderInitializer.init(AbstractXMLObjectProviderInitializer.java:52)
org.opensaml.core.xml.config.XMLObjectProviderInitializer.init(XMLObjectProviderInitializer.java:45)
org.opensaml.core.config.InitializationService.initialize(InitializationService.java:56)
As soon as I add guava-18.0.jar to TomEE/lib it works.
After some discussion on the ML it turned out that "java-support.jar" which packages the shibboleth SSO implementation is the culprit and should have been excluded from the TomEE plus distribution alongside guava which was intentionally left out due to it "breaking too many apps" (quote Romain)
Solution proposal: Why not exclude OpenSAML completely from TomEE as it is currently not working without manually adding or removing jars from /lib/ folder?