Hi Luke,
Very good questions indeed!
1. Why are they now in both?
This is to provide light weight support of web services in JSE 6 for someone who just wants to develop standalone(without using server) web services rather depending on heavy weight JEE6 API.
2. If there multiple versions of the javax.xml.ws on the classpath which one gets picked up?
This depends on Classloading mechanism of your server. If there are different versions of classes available and conflicting you get class loading problems otherwise, no problems. If you have access to class-loading isolation configuration like in
JBoss, you can carefully choose how exactly you want to load classes. Custom classloading is required to cater different deployed applications classpath requirements on a single server.
This presumably mean you will get different implementations of JAX-WS? And the only way to stop this would to use something like Axis2. Correct?
Not always, you can still use JAX-WS RI(from java6 or
JEE) in all these three implementations unless you use any proprietary packages for your web services. Here is an article on comparing different web services frameworks,
http://www.predic8.com/axis2-cxf-jax-ws-comparison.htm
Cheers,
Naren
(OCEEJBD6, SCWCD5, SCDJWS, SCJP1.4 and Oracle SQL 1Z0-051)