When using JDK 6 (up to JDK 6 Update 3) for building ServiceMix, you will run into this LinkageError when building ServiceMix:

java.lang.LinkageError: 
  JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from 
  jar:file:/home/<user>/.m2/repository/com/sun/xml/bind/jaxb-impl/2.1.6/jaxb-impl-2.1.6.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/)

Up to JDK 6 Update 3, the JDK ships with JAX-WS 2.0 (which includes JAXB 2.0), but ServiceMix requires JAXB 2.1. There are two possible solutions to this problem:

  1. upgrade your JDK to 1.6.0_04 or above, which will include JAX-WS (and JAXB) 2.1
  2. copy the version 2.1 jaxb-api.jar or jaxws-api.jar (you can probably find them in your local maven repo) to <JAVA_HOME>/lib/endorsed to override the API jars that ship with the JDK