...
GlassFish runs an older version of the Apache Felix OSGI container, so there is a class loader conflict.
Code Block java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "org.apache.felix.framework.wiring.BundleCapabilityImpl.getResource()Lorg/osgi/resource/Resource;" the class loader (instance of org/glassfish/web/loader/WebappClassLoader) of the current class, org/apache/felix/framework/wiring/BundleCapabilityImpl, and the class loader (instance of java/net/URLClassLoader) for interface org/osgi/resource/Capability have different Class objects for the type tyImpl.getResource()Lorg/osgi/resource/Resource; used in the signature
To mitigate this, we will need to downgrade the Apache Felix libraries before deploying to GlassFish.
- Expand (unzip) jw.war
- Delete the newer Apache Felix jar files from WEB-INF/lib:
- org.apache.felix.framework-4.6.1.jar
- org.apache.felix.main-4.6.1.jar
- Add the older Apache Felix jar files below into WEB-INF/lib:
- Add a modified Apache Felix config.properties file into WEB-INF/classes below (which contains a new property property felix.service.urlhandlers=false:) into WEB-INF/classes
- Deploy the updated jw.war and jwdesigner.war
...