What's the difference between jaxws-ri and jaxws-rt?

See the JAX-WS Maven repository from java.net - http://download.java.net/maven/2/com/sun/xml/ws/

There are two similar folders - jaxws-rt and jaxws-ri. Currently, I'm using the jaxws-rt and it's working fine.

Here are my questions:

  1. What's the difference between ri and rt?
  2. Does ri stand for reference implementation and rt stand for runtime?

Please advice.
Thanks.


Solution 1:

As an answer to your second question: Yes, you are right.

Below is the proof.


RI stands for Reference Implementation.

Quote from the official JAX-WS project home page (an old site, see the UPDATE section below):

Welcome to the JAX-WS Reference Implementation (RI) Project.


Plus in the POM file for the jaxws-ri (version 2.2.8 at the time of writing) we can find the following:

<name>JAX-WS RI Standalone Zipped Bundle</name>
<description>Open source Reference Implementation of JSR-224: Java API for XML Web Services Distribution Bundle</description>

RT stands for Runtime.

In the POM file for the jaxws-rt (version 2.2.8 at the time of writing) we can find the following:

<name>JAX-WS RI Runtime Bundle</name>

(The word Runtime gives us a hint :-))


UPDATE (April 2019)

The were quite a few changes in the Java EE world recently. Java EE was moved to Eclipse Enterprise for Java (EE4J). Read EE4J FAQ for more information.

And JAX-WS project, which is now part of the EE4J, has also moved to another place:

  • JAX-WS project's home page: https://javaee.github.io/metro-jax-ws/
  • JAX-WS project's code is hosted on GitHub: https://github.com/eclipse-ee4j/metro-jax-ws

Solution 2:

Looks like -ri generates the zip file for distribution (e.g. for use on the java.net web site), whereas -rt is for use as a Maven dependency. So you should keep using it.

EDIT: The other answer is more accurate and should be accepted