What is the difference between JBossWS and JAX-WS?
Is JBossWS an implementation built on JAX-WS, so in a sense JBossWS
contains JAX-WS?
JAX-WS is a specification for building web services in Java. It defines annotations to be used (@WebService, ...) and so on. The jdk contains a reference implementation of this specification, the JAX-WS RI.
JBossWS implements the JAX-WS specification. That is, it supports the same annotations and programming model as the JAX-WS RI. It does afaik not contain the RI, but provides its own implementation.
If so what makes people use JBossWS and not JAX-WS?
No matter whether you are using JBossWS or the RI, you will be using JAX-WS. People will use an implementation different from the RI, because they need the support of additional WS-standards, such as WS-Security, WS-ReliableMessaging and more. The only additional standard the RI supports (apart from WSDL and SOAP of course) is WS-Addressing.
On that note: There are several more JAX-WS implementations with differing degree of support out there. For example Apache CXF or Metro.