'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
The following appears in the
atlassian-confluence.log
during 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) :
The following appears in the
atlassian-confluence.log
after 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) :
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
Was this helpful?