Apache CXF
# Apache CXF

Apache CXF ist ein Open-Source-Webservice-Framework der Apache Software Foundation. Der Name CXF steht für "CeltiXFire", eine Verschmelzung der Namen der beiden Frameworks IONA Celtix und Codehaus XFire, welche die Basis für Apache CXF darstellten.

## Fokus

Apache CXF hat wie alle Webservice-Frameworks eine Reihe an Fähigkeiten, ist aber vorwiegend auf folgende Bereiche fokussiert:
* Unterstützung von Web Service Standards – CXF unterstützt eine Reihe von Web Service Standards wie SOAP, WSI Basic Profile, WSDL 2.0, WS-Addressing, WS-Policy, WS-ReliableMessaging, WS-Security, WS-SecurityPolicy und WS-SecureConversation.
* Unterstützung von verschiedenen Frontend-Programmiermodellen – CXF implementiert die JAX-WS und JAX-RS (JSR 311) API, inkludiert aber auch ein "einfaches" Frontend, welches die Implementierung von Clients ohne Verwendung von Annotationen oder mit JavaScript unterstützt. Es unterstützt die Umsetzung von Webservices sowohl über den Code First-Ansatz (Bottom Up) unter Verwendung von sog. Plain Old Java Objects (POJO), als auch den Contract First-Ansatz (Top Down) unter Verwendung von WSDL.
* Einfache Verwendung – CXF bietet dazu einfache APIs für Code-First Services, Apache-Maven-Plug-ins für die Integration in den Buildprozess und das Framework Spring, XML Support für einfachere Konfiguration.
* Unterstützung von binären und proprietären Protokollen – CXF basiert auf einer Plug-In Architektur, welche sowohl XML- als auch nicht XML-basierende Datenbindung wie beispielsweise JSON und CORBA in Kombination mit jeder Art von Transportprotokollen (HTTP, JMS, JVM) unterstützt.
Apache CXF wird häufig zusammen mit Apache ServiceMix (Enterprise Service Bus), Apache Camel (Enterprise Messaging System) und Apache ActiveMQ (Java Message Service) in SOA-Infrastruktur-Projekten eingesetzt.
IONA vertreibt eine kommerzielle Enterprise-Version von Apache CXF unter dem Namen FUSE Services Framework.

## Unterstützte Standards und Spezifikationen

Apache CXF unterstützt die W3C-Standards SOAP, MTOM und WSDL, sowie die W3C-Spezifikationen WS-Addressing, WS-Policy, WS-Reliable Messaging, WS-Security, WS-SecureConversation und WS-Trust.
Apache CXF unterstützt die Java-Programmierschnittstellen JAX-WS, JAX-RS, JBI, JCA, JMX, JMS über SOAP, Spring sowie die XML-Datenbindungs-Frameworks JAXB, Aegis, Apache XMLBeans, SDO.