Metro vs Java's JAX-WS?

What is/are the difference/s of Java's JAX-WS and Metro? Are they the same of are they two different JAX-WS implementations?

According to my research, JAX-WS is already a part of JDK 6. However, JAX-WS does not come with the standard bundle of JDK so I looked for a Java EE jar. However, it seems that Oracle does not host a compiled Java EE jar but instead provides Glassfish which is a Java EE server.

I was able to run my web service on Glassfish. What JAX-WS implementation does Glassfish use? Since it's hosted on Oracle, I'm assuming that it is using Java's implementation of JAX-WS which is supposedly a part of JDK 1.6? Am I correct with my assumption? Also, to run a JAX-WS based web service, I need to download JAX-WS jars. I found Metro. But on it's page, I see the link of metro to be a sublink of Glassfish. So I'm now confused. Is Glassfish using Metro? Or is Glassfish using Java's JAX-WS?

Are Metro and Java's JAX-WS the same?


答案 1

JAX-WS is an API while Metro is the reference implementation for the JAX-WS API; both are from Sun/Oracle, thus are standard. You can see them as an interface (JAX-WS) and a class implementing the interface (Metro), only at a higher level. Glassfish also uses Metro as implementation for JAX-WS.

To be noted that Metro contains implementation for JAXB and other APIs.

Also, SOAP Web Services are somehow obsolete; the new trend is to use REST Web Services; JAX-RS (with various implementations from the standard Jersey to Restlet or CXF).


答案 2

Accourding to Metro's home page, "Metro consists of JAX-WS Reference Implementation project and Web Services Interoperability Technology project."

Web Services Interoperability Technologies (WSIT) (previously known as Project Tango) includes implementations of:

  • SOAP over TCP
  • WS-AtomicTransactions/Coordination
  • WS-MetadataExchange
  • WS-Policy (https://github.com/javaee/metro-policy)
  • WS-ReliableMessaging
  • WS-SecureConversation
  • WS-Security
  • WS-SecurityPolicy
  • WS-Trust

Look at this answer for futher information.


推荐