'java.lang.LinkageError JAXB 2.0 API is being loaded from the bootstrap classloader' Error During Startup

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Symptoms

  1. The following appears in the atlassian-confluence.logduring startup:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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) :
  2. The following appears in the atlassian-confluence.logafter every page load in the admin console:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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) :
  3. The Universal Plugin Manager is non-functional

Cause

  1. 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

  2. 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

Updated on April 8, 2025

Still need help?

The Atlassian Community is here for you.