Skip to main content

JAX-WS 2.1 and JAXB 2.1 is available in JDK 6 Update 4 release

Posted by ramapulavarthi on January 11, 2008 at 5:02 PM PST

Finally, JDK6 Update 4 release, which has JAX-WS 2.1 and JAXB 2.1 implementation is out and available here.

What it means to you as a user:

You can use JAX-WS 2.1 (Metro 1.1) very smoothly on JDK 6 U4 and later.

Earlier releases of JDK 6 have JAX-WS 2.0 and JAXB 2.0 implementations. After the release of JDK 6 FCS, JAX-WS RI has been re-architected to perform better (infact a lot better ) and make it extensible for other technologies to be implemented using the core framework. Since the re-architecture and release of JAX-WS 2.1, JAX-WS user and developer community have been asking for the update of JAX-WS in JDK 6. Currently to use JAX-WS 2.1 on earlier JDK 6 releases, one has to use endorsed overide mechanism as explained here in detail. Using the endorsed mechanism, it has been little painful to use latest JAX-WS in applets and other scenarios. This has been the case for any evolving technology.

Since then, We have been planning to update JAX-WS in JDK 6 in Update release. It is little unusual for a major component such as JAX-WS to update its version without revving up the Java Major version. After discussions and the approval process, JAX-WS 2.1 has been integrated and tested thoroughly. This has took longer than we expected for it to come out due to unforeseen circumustances. Finally, JAX-WS 2.1 along with JAXB 2.1 is integrated in JDK 6 Update 4 release and is available for download. Rest assured, All your old web-services applications should work fine and may even perform better. JDK 6 U4 has bits based on JAX-WS 2.1.1 FCS and JAXB 2.1.1 FCS. The main change in JAX-WS API is the addition of API to support WS-Addressing 1.0. You can find the JAX-WS/JAXB changes and bug fixes that got into JDK 6 U4 here at JAX-WS change log and JAXB change log

You might also notice that OpenJDK6 still has JAX-WS 2.0. We are actively working on updating the bits in Open JDK as tracked on this bug report.

If you want to use the latest releases of JAX-WS/JAXB for other bug fixes, you can use the latest releases of JAX-WS and JAXB by putting the JAX-WS/JAXB jars in the classpath like any other Java library. So with JDK6 U4, you don't need to use the endorsed mechanism. The latest release of JAX-WS 2.1.3 has these changes and JAXB 2.1.6 has these changes

Also you might want to download Metro 1.1, which has JAX-WS 2.1.3 and Web Services Interoperability Technologies (WSIT) 1.1 that implements the WS-* specs and provides advanced Web Services support in terms of Quality of Service and Security. To use Metro 1.1 on JDK6 U4, you just have to put the Metro jars in the classpath.

Life is getting better. Isn't it?



Related Topics >>


JAX-WS 2.1 and JAXB 2.1 is

Hello, sorry to comment so late on a post, but I see it is the same issue that has occurred several times.

Now when I upgrade to glassfish 3.1 (which includes a newer version of jax-ws than is included in the latest java 6 (u24), I have a web service problem again.

It rears its ugly head when I launch a java web start application from glassfish that uses the web services from the same glassfish server.

The endorsed mechanism works for this, but it seems like this has to have been solved by now.

Hi, Could you point me to some information or samples related to extending wsgen/wsimport for the purpose of allowing it to support additional transports (besides http). For example, I would like to extend wsgen so that it can generate a wsdl with an alternate value for the soap:binding's transport attribute. And I'd like to extend wsimport so that it could accept an alternate value for the transport attribute and create the corresponding BindingType annotation in the JAX-WS impl bean class. Thanks!

I wonder if the matching servlet context listener and the servlet are part of the JDK now.

Hi all, It took a few days ago that I'm in a little trouble due to an randomly ArrayIndexOutOfBounds exception while invoking marshal method of the javax.xml.bind.Marshaller class (previously checking that parameters are not null). I was using JDK1.6.0_01 since I read in forum thread 21542 that this was a bug fixed in JAXB2.1.1. After investigating, I discovered that JDK1.6.0_01 includes JAXB2.0, so, I upgraded to JDK1.6.0_04 which includes JAXB2.1.1 (where the previous bug was resolved). The exception still apears. I downloaded the latest JAXB2.1.6 and used jar files with endorsed mechanism but no success. After reading this post, I've used the jar files by putting them in the classpath but no success. The point is that I'm not sure about the JAXB version I'm using when compiling and when executing. How can I easily know which is the JAXB version being used? Into Eclipse I have the JRE library from jdk1.6.0_04 and I have no compilation errors (in fact, I compile using ANT). Shall I Have to include any JAR in jdk/jre/lib/endorsed (compilation or runtime) if I want to use JAXB2.1.6? If I externally compile via ANT, do I need to put the JAR files elsewhere? As you can see, I'm a bit lost because the exception that randomly appears seems to be something resolved but I'm not sure if I am using the correct library where is resolved this issue. Can you help me, please? Thanks in advance and sorry for my poor english.

Hi frodero, Just putting the latest jaxb jars (jaxb-api.jar and jaxb-impl.jar..) in the classpath should be enough. So I would say check the classpath that make sure jaxb-api.jar is also int he classpath. Also Please post the stack trace in Metro Forums. Kohsuke has this nice tool which4j ( ) to check from where the classes are loaded. try it out.

Hi again! Lot of thanks! I finally found a solution to my problems looking in the suggested forum.