Nuxeo EP includes a JAX-WS compliant implementation to expose SOAP based webservices.
- Sun JAX-WS (Metro) is used on Tomcat and JBoss 4.x distributions
- JBossWS is used on JBoss 5.x distributions
As explained earlier in these pages, JAX-WS is not the preferred way to expose WebService on top of Nuxeo Platform, this is the reason why, the default distributions don't expose a lot of SOAP based WebServices.
By default, the exposed SOAP WebServices include :
- A read only access to the Document Repository and the User Manager (NuxeoRemoting)
- A read only access to the Audit trail (NuxeoAudit)
- the CMIS bindings
If you want to access the SOAP Webservice :
- To list all the deployed endpoints
- To access NuxeoRemoting WSDL : http://server:port/nuxeo/webservices/nuxeoremoting?wsdl
- To access NuxeoAudit WSDL : http://server:port/nuxeo/webservices/nuxeoaudit?wsdl
The point of SOAP WebServces is not to have a 1 to 1 mapping with the Java services interfaces.
The goal is to provide a "coarse grained" high level API.
So it's easy to build new SOAP based WebServices on top of Nuxeo:
- the JAX-WS infrastructure is already there
- the authentication system is already in place
- we provide the base class to manage Repository and security (AbstractNuxeoWebService)
- we already provide JAXB objects for Documents, Security descriptors, properties ...
JAX-RS REST APIs
Since 5.2 Nuxeo EP includes a JAX-RS framework to allow easy publishing of Java classes via REST APis.
Nuxeo WebEngine provides a nice integration model so that you can very simply write Java classes that use Nuxeo Services and Documents and expose it via REST with JSON or XML marshaling.
JAX-RS / WebEngine is the current preferred solution for exposing custom WebService on top of the platform and it is also the base of Content Automation WebService APIs.
You can get more informations about WebEngine and JAX-RS here.
RESTLETs in Nuxeo
The Restlet framework is integrated inside Nuxeo since 5.1 and has been used to expose REST API on top of the platform.
Restlet has been replaced by JAX-RS /Jersey, but Nuxeo still embeds Restlets:
- because of lot of "old" REST apis are still used and works perfectly with Restlets
- because Restlets have been integrated with Seam (so you can easily mix Seam JS and Restlets calls since they share the same server side conversation)
Unlike Content-Automation, Restlet in Nuxeo were never targeted at providing a uniform high level API, these are just helpful REST Apis exposed for:
- Seam Remoting usage
- Browser helpers usage
You can see what Rest APIs are exposed via Restlets by looking and the configured Restlets: