{{ !articles[0].partner.isSponsoringArticle ? "Platinum" : "Portal" }} Partner
java,enterprise-integration,web services,soap,build tool,rest

Enunciate Your Web Service API

Enunciate is an engine for building a rich Web service API, released open-source under the Apache 2 license. The concept is pretty simple: write your service interfaces, apply some JAX-WS and/or JAX-RS metadata, and invoke Enunciate via your favorite build tool (Maven, Ant, etc.). Enunciate will package up a war file for you that you can deploy in your favorite J2EE container.

Note the refreshing lack of deployment descriptors and configuration files. Enunciate also puts some effort into validating your service endpoints at compile-time, so you don't have to wait until your application is running to find out that you've got your annotations wrong or something like that.

When you deploy your web application, you'll have your service endpoints mounted and functioning as expected, but you'll also quickly see that Enunciate has done some extra work to enrich your Web service API:

  • Full User Documentation
    Enunciate will generate nice HTML documentation for your Web service API, scraped from the JavaDocs.
  • Client-Side Code
    The documentation will have links to download client-side code that Enunciate generated to be able to invoke your service operations via the Web service API.
  • WSDLs, Schemas, etc.
    The WSDLs and Schemas were generated by Enunciate from the source code, so they're consolidated, well-formatted, and documented.

Enunciate provides a large set of other features that can be leveraged to enhance your Web service API such as GWT endpoints and client-side code, AMF endpoints and client-side ActionScript code, Web service security, etc. Enabling these is just a matter of passing a few configuration options.

To learn more, take a look at the project homepage. Take a walk through the getting started guide to see Enunciate in action. Check out some sample code to see it working on your own box.


{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks