Tuesday, December 08, 2015

org.osgi.framework.BundleException: Unresolved constraint in bundle jaxb-api

If you are getting this error message:
missing requirement [1.0] package; (package=javax.activation)
Do not worry, this is because you are unknowingly using the wrong version of Java to start glassfish. Even though you think you are running glassfish with the version in your shell's environment, either via sudo or some other sub process, the environment is not your own, and it is attempting to run glassfish with a different version of java (probably a newer version of java).

If you are running glassfish with sudo because of this bug, try these possible workarounds instead of the suggested ones:
JAVA_HOME=$JAVA_HOME ./asadmin start-domain --verbose=true domain1
sudo JAVA_HOME=$JAVA_HOME ./asadmin start-domain --verbose=true domain1

Hope that helps.

And here is more of the original error message in case yours is similar:
ERROR: Bundle jaxb-api [1]: Error starting file:/Users/apple/app_servers/oracle.com/glassfish-3.2-b07-05_12_2011.zip/glassfish3/glassfish/modules/endorsed/jaxb-api-osgi.jar (org.osgi.framework.BundleException: Unresolved constraint in bundle jaxb-api [1]: Unable to resolve 1.0: missing requirement [1.0] package; (package=javax.activation))
org.osgi.framework.BundleException: Unresolved constraint in bundle jaxb-api [1]: Unable to resolve 1.0: missing requirement [1.0] package; (package=javax.activation)
 at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3443)
 at org.apache.felix.framework.Felix.startBundle(Felix.java:1727)
 at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1156)
 at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264)
 at java.lang.Thread.run(Thread.java:745)
ERROR: Bundle org.glassfish.metro.webservices-api-osgi [2]: Error starting file:/Users/apple/app_servers/oracle.com/glassfish-3.2-b07-05_12_2011.zip/glassfish3/glassfish/modules/endorsed/webservices-api-osgi.jar (org.osgi.framework.BundleException: Unresolved constraint in bundle org.glassfish.metro.webservices-api-osgi [2]: Unable to resolve 2.0: missing requirement [2.0] package; (&(package=javax.xml.bind)(version>=2.2.2)) [caused by: Unable to resolve 1.0: missing requirement [1.0] package; (package=javax.activation)])
org.osgi.framework.BundleException: Unresolved constraint in bundle org.glassfish.metro.webservices-api-osgi [2]: Unable to resolve 2.0: missing requirement [2.0] package; (&(package=javax.xml.bind)(version>=2.2.2)) [caused by: Unable to resolve 1.0: missing requirement [1.0] package; (package=javax.activation)]