For further researchers, I wanted to share my additional steps on how to remove all old JAXB and CXF from JBoss 6.1 and add new versions from them (this is Yves Martin's extended answer ):
To delete:
common/deploy/jbossws-console.war server/<configuration>/deploy/jbossws-console-activator-jboss-beans.xml server/<configuration>/deployers/jbossws.deployer/ server/<configuration>/deployers/jbossws-jaxrpc.deployer/ client/cxf-*.jar client/jaxws-*.jar client/jaxb-impl.jar client/jaxb-xjc.jar client/wstx-lgpl.jar client/jbossws-*.jar client/stax-api.jar client/activation.jar lib/wstx-lgpl.jar lib/jaxb-impl.jar lib/jaxb-xjc.jar common/lib/jboss-jaxb-api_2.2_spec.jar common/lib/jboss-jaxws-api_2.2_spec.jar common/lib/jboss-jaxrpc-api_1.1_spec.jar common/lib/cxf-*.jar common/lib/jaxws-*.jar common/lib/jbossws-*.jar (except common/lib/jbossws-spi.jar) lib/endorsed/activation.jar lib/endorsed/jboss-jaxb-api_2.2_spec.jar lib/endorsed/jbossws-cxf-factories.jar lib/endorsed/jboss-jaxws-api_2.2_spec.jar lib/endorsed/stax-api.jar
From the configuration file at: Server // for deployment / switch-jboss- beans.xml
delete the following lines:
<entry> <key>javax.xml.ws.WebServiceContext</key> <value><inject bean="org.jboss.switchboard.WebServiceContextResourceProvider"/></value> </entry> <inject bean="org.jboss.switchboard.WebServiceRefResourceProvider"/>
If you want to upgrade JAXB + CXF to version 2.6.3, add the following libraries:
lib/jaxb-xjc-2.1.13.jar lib/endorsed/activation-1.1.1.jar lib/endorsed/jaxb-api-2.2.6.jar lib/endorsed/jaxws-api-2.2.6.jar lib/endorsed/stax2-api-3.1.1.jar lib/endorsed/saaj-api-1.3.4.jar lib/endorsed/cxf-api-2.6.3.jar common/lib/cxf-api-2.6.3.jar
If you have a Java 6 project, the new JAXB will output it with the JRE, so we must approve the new version. Here's how to do it for maven:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven-compiler-plugin.version}</version> <configuration> <source>1.6</source> <target>1.6</target> <maxmem>512m</maxmem> <compilerArguments> <endorseddirs>${project.build.directory}/endorsed</endorseddirs> </compilerArguments> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${maven-surefire-plugin.version}</version> <configuration> <forkMode>once</forkMode> <argLine>-Djava.endorsed.dirs=${project.build.directory}/endorsed</argLine> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>${maven-compiler-plugin.version}</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>copy</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>${jax.version}</version> </artifactItem> <artifactItem> <groupId>javax.xml.ws</groupId> <artifactId>jaxws-api</artifactId> <version>${jax.version}</version> </artifactItem> </artifactItems> <outputDirectory>${project.build.directory}/endorsed</outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin</artifactId> <version>${cxf.version}</version> <configuration> <fork>once</fork> <additionalJvmArgs>-Djava.endorsed.dirs=${project.build.directory}/endorsed</additionalJvmArgs> </configuration> <dependencies> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>${jax.version}</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-xjc</artifactId> <version>${jax.version}</version> </dependency> </dependencies> </plugin>
In your IDE, you should say that it should compile using the new JAXB libraries. In the case of IDEA, you can do it here:
IDEA -> Settings -> Compiler -> Java Compiler in "Additional command line parameters" add: -endorseddirs /<your_absolut_path_to_project>/target/endorsed/
source share