'java.lang.LinkageError JAXB 2.0 API is being loaded from the bootstrap classloader' Error During Startup
Symptoms
The following appears in the
atlassian-confluence.log
during startup:2010-10-19 12:51:55,748 ERROR [http-9080-5] [atlassian.plugin.servlet.DefaultServletModuleManager] getFilter Unable to create filter -- referer: http://172.17.148.87:9080/confluence/dashboard.action | url: /confluence/rest/prototype/1/i18n/com.atlassian.confluence.keyboardshortcuts | userName: anonymous com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file/app/wiki30/confluence-3.4-std/confluence/WEB-INF/lib/jaxb-impl-2.1.10.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.1 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (See http://java.sun.com/j2se/1.5.0/docs/guide/standards/) at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:148) at com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:111) at com.atlassian.plugin.servlet.DefaultServletModuleManager.getFilter(DefaultServletModuleManager.java:358) at com.atlassian.plugin.servlet.DefaultServletModuleManager.getFilters(DefaultServletModuleManager.java:212) at com.atlassian.plugins.rest.module.servlet.DefaultRestServletModuleManager.getFilters(DefaultRestServletModuleManager.java:117) : Caused by: java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file/app/wiki30/confluence-3.4-std/confluence/WEB-INF/lib/jaxb-impl-2.1.10.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.1 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. (See http://java.sun.com/j2se/1.5.0/docs/guide/standards/) at com.sun.xml.bind.v2.model.impl.ModelBuilder.<clinit>(ModelBuilder.java:173) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:431) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:288) at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1111) at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:154) :
The following appears in the
atlassian-confluence.log
after every page load in the admin console:2010-10-19 12:56:01,324 ERROR [http-9080-4] [atlassian.plugin.servlet.DefaultServletModuleManager] getFilter Unable to create filter -- referer: http://172.17.148.87:9080/confluence/admin/createsupportzip.action | url: /confluence/rest/prototype/1/i18n/com.atlassian.confluence.keyboardshortcuts | userName: thadams com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:148) at com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:111) at com.atlassian.plugin.servlet.DefaultServletModuleManager.getFilter(DefaultServletModuleManager.java:358) at com.atlassian.plugin.servlet.DefaultServletModuleManager.getFilters(DefaultServletModuleManager.java:212) at com.atlassian.plugins.rest.module.servlet.DefaultRestServletModuleManager.getFilters(DefaultRestServletModuleManager.java:117) : Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:431) at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:288) at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1111) at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:154) at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:121) :
- The Universal Plugin Manager is non-functional
Cause
- Using a version of Java < 1.6.0_4. The correct version of JAXB did not get added to the JDK until 1.6.0_4
- Using FreeBSD, you'll notice that the latest version is 1.6.0.3p4_29.
Resolution
For the first cause:
Upgrade the JDK past 1.6.0_4, eg. JVM 6 Update 17. Do not upgrade to JVM 6 Update 18 or later due to a stability issue, refer to Fatal JVM Crash - 'java.lang.OutOfMemoryError .. Out of Swap Space?'.
For the second cause:
Download Diablo JDK16 and point the JAVA_HOME to Diablo JDK