JBoss 4.2.3, JDK 6, JAX-WS
Just a quick note on what not necessarily to do if you intend to deploy applications using webservices on JBoss 4.2.3. JBoss 4.2.3 comes in two flavours, selectable from the download page:
- JBoss 4.2.3
- JBoss 4.2.3 JDK6
The latter contains a couple additional JARs in lib/endorsed:
- jaxb-api.jar
- jboss-jaxrpc.jar
- jboss-jaxws.jar
- jboss-jaxws-ext.jar
- jboss-saaj.jar
The release notes contain some hidden hints that the JDK6 version of JBoss 4.2.3 is still experimental. Those JARs, especially the jaxws JARs, contain implementations that appear to be under active development. Looking at the source code reveals some pretty “hacky” portions of code here and there. The downside of those JARs is that if you have an application that contains libraries like CXF or Axis, you might run into severe trouble because the JBoss implementation of classes like javax.xml.ws.Service gets loaded first, instead of the version you have packaged with your application. You can of course tune the classloading options of your app, which MAY resolve the problem, but it does not necessarily help you a lot – you will either have to package a whole bunch of additional JARs with the application, or you will simply not make it around the classes from lib/endorsed.
My opinion at the moment is this: unless you have a very good reason OR an application that is completely based on the JBoss JAXWS et alii implementations anyway, simply use the “normal” JBoss 4.2.3, which is compiled against JDK 5 and does not bring along those libraries. On the web, you will most likely find hints like “delete the *jaxws*.jar from lib/endorsed” – actually, why delete them, if you can download the version that was compiled against JDK5. Comments?