Codehaus XFire

Documentation

Quicklinks

Developers

Sponsors

There SOAP stack space has gotten more crowded recently. This chart is to help you decide which stack to use.

If you have any corrections/additions please direct them to the mailing list.

While feature matrices can be helpful, we think you should keep some other points in mind which are equally important.

  • Performance - XFire is one of the fastest SOAP stacks available. We'll have some benchmarks coming soon, but a rough guide is that we're 2-5x faster than Axis 1.
  • Robustness - XFire is now at 1.2, it has been in development for over 2.5 years, and it has deployed in many large organizations around the world.
  • Ease of Use - XFire is significantly easier to use than a lot of SOAP stacks.
  • Embeddability - The SOAP stacks below have various degrees of embeddability. This may not be a factor in your application design, but here are our thoughts on the issue:
    • Axis 1's big embeddability flaw is that its API was never meant to be used by an end user. Also, it uses static references to the AxisEngine everywhere in the code, making it impossible to run two completely seperate instances side by side.
    • Axis 2 seems to be a bit more embeddable, although the API seems kind of ugly and there isn't any documentation on the subject. (Dan Diephouse: It also makes the mistake in my opinion of trying to be the equivalent of a J2EE container, which means it mucks with classloaders, has its own deployment model, etc. That is what Spring, JBI, other containers are for, so XFire doesn't feel the need to replicate that.)
    • Celtix - seems embeddable.
    • Glue - definitely embeddable.
    • JBossWS - We haven't had time to play with this one yet.
    • XFire - Check out our sample.

Last Date of Comparison: 9/1/2006

General Features

Feature Axis 1.x Axis2  Celtix Glue JBossWS  XFire (1.2) JAXWS 2.1 RI 
Basic Profile 1.1 Compliant X X  X X  X X
DIME X     X      
Easily Create Services from POJOs   X  X X  X  X
MTOM   X      X X
Open Source X X  X    X X
RPC-Encoding
  X  X     
Spring Support
X   X
    X
X (via spring extension
REST Support
  X

   
IDEA/Eclipse Plugins
  X

   X X  
 NetBeans Plugins
           
Hot Deployment
  X
     X X (Via ServiceMix)
X (via Glassfish
Soap 1.1
X
X
X
x
 X
X
Soap 1.2 X X   X  X X
Soap w/ Attachments X X   X  X Coming in 2.0!
Streaming XML (StAX based)
  X       X
WSDL->Code (Client) X X  X X  X X
WSDL->Code (Server) X X  X X  X X
Client Side Asynchrony
           
Server Side Asynchrony             
Stateful Webservices
           

JSR standards

Feature Axis 1.x Axis2  Celtix Glue JBossWS  XFire (1.2)   JAXWS 2.1 RI
JAX-RPC X     X?  X      
JAX-WS  
 X    Coming in 2.0  
Early Access, full suport in 2.0 X
JBI (See ServiceMix) ?    X     X X  (via Glassfish)
JSR 181 X    X    X X
JSR 181 on Java 1.4
         X  X  
SAAJ
X
X
 X X
 X  Coming in 2.0!
JSR 109             

Data Bindings

Feature Axis 1.x Axis2  Celtix Glue JBossWS
XFire JAXWS 2.1 RI
XMLBeans  Support
X       X  
Castor Support X
      X  
JiBX   X  X
    X
 
JAXB 1.1
X      X  
JAXB 2.0
     X Coming in 2.0  X  X

WS-*

Feature Axis 1.x Axis2  Celtix Glue JBossWS
XFire JAXWS 2.1 RI
WS-Addressing X X X X  X X
WS-Eventing          X     
WS-Notification X
  ?   X Via ServiceMix  
WS-ReliableMessaging
X X  X
  Coming in 2.0! X (via WSIT )
WS-Policy
  X  
  Coming in 2.0! X (via WSIT )
WS-Security Policy
            X (via WSIT )
WS-Security X X   X  X X
X (via WSIT )
WS-Trust              X (via WSIT )
WS-Secure Conversation              X (via WSIT )
WS-Atomic Transaction
            X (via WSIT )
WS-Coordination             X (via WSIT )
WS-Metadata Exchange              X (via WSIT )
WSDL 1.1 Support X X  X X  X X X
WSDL 2.0 Support           Coming in 2.0!
 

Transports

Feature Axis 1.x Axis2  Celtix Glue JBossWS
XFire JAXWS 2.1 RI
HTTP X X X X  X X
JMS X X X  X X X(via JMS extension)
Jabber Experimental         X  
SMTP X X        
TCP X X         X(via Glassfish