Friday, July 6, 2007

Web Services: AXIS, XFire, CXF, JAX-WS


Monitoring SOAP messages
Axis SOAPMonitor User's Guide
Apache TCPMon (Tutorial) tcpmon)

official and wiki
JIRA and mail

Release notes and what in this realise
User Guide
Commands - Axis Reference Guide

  • SOAP 1.1/1.2 compliant engine
  • Flexible configuration / deployment system
  • Support for "drop-in" deployment of SOAP services (JWS)
  • Support for all basic types, and a type mapping system for defining new serializers/deserializers
  • Automatic serialization/deserialization of Java Beans, including customizable mapping of fields to XML elements/attributes
  • Automatic two-way conversions between Java Collections and SOAP Arrays
  • Providers for RPC and message based SOAP services
  • Automatic WSDL generation from deployed services
  • WSDL2Java tool for building Java proxies and skeletons from WSDL documents
  • Java2WSDL tool for building WSDL from Java classes.
  • Preliminary security extensions, which can integrate with Servlet 2.2 security/roles
  • Support for session-oriented services, via HTTP cookies or transport-independent SOAP headers
  • Preliminary support for the SOAP with Attachments specification
  • An EJB provider for accessing EJB's as Web Services
  • HTTP servlet-based transport
  • JMS based transport
  • Standalone version of the server (with HTTP support)
  • Examples, including a client and server for the SoapBuilders community interoperability tests and experimental TCP, JMS, and file-based transports.
  • This version has passed the JAX-RPC 1.1 and SAAJ 1.2 TCKs.

Axis uses it's own internal databinding system (referred to as de/serialization) that's based on SAX. It is not a pluggable option. (Perhaps you've seen messages such as "no deserialized found for [qname]). Axis provides built-in de/serializers for beans and arrays, and you can provide custom de/serializers for other types. You specify the de/serializers to use, and the mapping between qnames and types in the WSDD using the beanMapping and typeMapping options.

If you want to use a third-party databinding system, then you must use the low-level message provider (provider="MSG"), which deserializes the message into DOM, which you can then bind to your object model.

official and wiki
JIRA and mail

Release notes
Commands - Code Generator Tool Guide for Command Line and Ant Task
Reference (WSDL2Java and Java2WSDL)
Code Generator Wizard Guide for Eclipse Plug-in
Service Archive Generator Wizard Guide for Eclipse Plug-in

Programming Model:
  • Improved XML-centric client API with full WSDL and policy support
  • Support for POJO and Spring services and clients
  • Support for any message exchange pattern (MEP)
  • Synchronous and asynchronous programming model
  • Archived service deployment model supporting full service encapsulation with versioning support
  • Archived module deployment model supporting controlled extensibility with versioning support
  • Hot deployment
  • WS-Policy driven code generation extensions
  • Flexible service life cycle model
  • Automatic support for POX (REST) style invocation of services
  • Support for querying service's WSDL (with ?wsdl), schema (with ?xsd) and policies (with ?policy)
  • WSDL 2.0POJO annotation (JSR 181)
  • JAX-WS intregration
  • Custom Deployers
  • Binary serialization (Fast Infoset)
  • JSON support
  • EJB Provider support
  • Supported Specifications:
  • SOAP 1.1 and 1.2
  • Message Transmission Optimization Mechanism (MTOM)
  • XML Optimized Packaging (XOP)
  • SOAP with Attachments
  • WSDL 1.1, including both SOAP and HTTP bindings
  • WS-Addressing submission and 1.0
  • WS-Policy
  • SAAJ 1.1
  • Supported Data Bindings:
  • Axis Data Binding (ADB), XMLBeans, JibX, JaxMe (Experimental), JaxBRI (Experimental)
  • WSDL2Java, Java2WSDL, Eclipse Plugins, Maven2 Plugins, ...
official and wiki
and mail

  • Support for important Web Service standards - SOAP, WSDL, WS-I Basic Profile, WS-Addressing, WS-Security, etc.
  • High performance SOAP Stack
  • Pluggable bindings POJOs, XMLBeans, JAXB 1.1, JAXB 2.0, and Castor support
  • JSR 181 API to configure services via Java 5 and 1.4 (Commons attributes JSR 181 syntax)
  • Support for many different transports - HTTP, JMS, XMPP, In-JVM, etc.
  • Embeddable and Intuitive API
  • Spring, Pico, Plexus, and Loom support.
  • JBI Support
  • Client and server stub generation
  • JAX-WS early access support

Howto use wsgen and wsdlgen
Client and Server Stub Generation from WSDL
Web Services on XFire – Fast Forward to 2007
Eclipse Plugin
Axis vs XFire
Stack Comparison

official and wiki
JIRA and mail

  • JAX-WS frontend
  • Java2WSDL and WSDL2Java tools and Maven plugin
  • SOAP 1.1 & 1.2, XML and RESTful HTTP bindings
  • JAXB 2.0 Databinding support
  • JSON support with Jettison
  • WSDL 1.1 support
  • WS-Addressing, WS-ReliableMessaging, and WS-Policy support
  • MTOM attachment support
  • HTTP, Servlet, JMS and Local Transports
  • Simple POJO service frontend
  • Javascript frontend
  • JBI Service Engine. CXF services can be deployed into any JBI compliant container (ServiceMix or OpenESB)
  • JCA 1.0 support, J2EE application can integrate with legacy application through JCA 1.0 support in CXF
  • Spring Support

Reease notes

official and wiki

  • JAX-WS 2.0/2.1 (JSR 224)
  • WS-I Basic Profile 1.1
  • WS-I Attachments Profile 1.0
  • WS-I Simple SOAP Binding Profile 1.0
  • WS-Addressing 1.0 - Core, SOAP Binding, WSDL Binding

Other resources

WSDL Version 1.1
WSDL Version 2.0
Web Services Addressing 1.0 - WSDL Binding
SOAP Version 1.2

No comments: