Hi Alex,
It doesn't matter which JAX-WS implementation we choose, there will
always be pros and cons and people who prefer one or the other.
From a licenses point of view, Apache CXF is the better choice because
it's under the Apache license. Removing CDDL dependencies is a good
thing.
From an OpenCMIS development point of view, it doesn't make a big
difference.
From a support point of view, Apache CXF is also the better choice.
There are more documentation and support channels for Apache CXF than
there are for the Metro RI. There is more information on the Internet
how to run CXF on various application servers than there is for Metro
RI.
There shouldn't be much impact for applications that also provide other
Web Services in the boundaries of JAX-WS. It's a different story for
applications that use Metro RI internal APIs - like OpenCMIS did. If
this is an issue for someone, please let us know.
I think there is no need to have two versions of the server framework.
If you don't want the Web Services binding, you only have to remove the
servlet configuration from the web.xml. You can also remove the Web
Services related dependencies or - if you use Maven - exclude them in
your pom.xml.
Would it help if we provide sample web.xml and pom.xml files?
- Florian
Hi Florian,
Would upgrading to a newer version of Metro RI have helped instead of
moving to Apache CXF? The latest version available is 2.2.10. I guess
moving to CXF would make it difficult for any application that's
already using Sun's JAX-WS and the OpenCMIS server framework. Does it
make sense to have 2 versions of the server framework available - one
with support for all 3 bindings and the other with atompub and browser
binding only?
Thanks
From: Florian Müller <[email protected]>
To: [email protected]
Sent: Sunday, July 12, 2015 2:12 AM
Subject: Web Services and Java 8/9
Hi,
The Web Service binding server implementation of OpenCMIS was based on
the Sun JAX-WS RI. This JAX-WS implementation seems to have serious
issues with Java 8 and 9 (see [1] and [2]).
The Web Service binding client implementation used the JAX-WS provided
by the JRE. Because of some shortcomings of the JAX-WS specification we
had to call a few internal APIs. That's not working anymore with
upcoming Java 8 and 9 releases.
So, I have changed the Web Service binding implementation (client and
server) to use Apache CXF 3.0 instead.
This is a major change! It should not affect code that uses OpenCMIS,
but it affects the deployment. OpenCMIS has now different dependencies.
Updating to the next OpenCMIS release will need some more work and
attention than before.
The new implementation (in trunk) is complete but not well tested. The
TCK passes and my smoke tests were all successful so far. It would be
great if someone else could test it as well.
- Florian
[1] https://issues.apache.org/jira/browse/CMIS-917
[2|
https://mail-archives.apache.org/mod_mbox/chemistry-dev/201506.mbox/%3C2FBF817A4032C64CA8DE5F4F73ED93A4438F3EEE%40otmucxg20.opentext.net%3E