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

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

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