19
Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de [email protected] Axis2, CXF und JAX-WS RI im Vergleich 2 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich Gliederung Die Standards: JWS, JAXB und JAX-WS Axis2 Apache CXF JAX-WS RI und Metro Deployment mit JAX-WS Fazit

Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

1

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]

Axis2, CXF undJAX-WS RI im

Vergleich

2

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Gliederung

• Die Standards: JWS, JAXB und JAX-WS• Axis2• Apache CXF• JAX-WS RI und Metro• Deployment mit JAX-WS• Fazit

Page 2: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

2

3

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Apache SOAP

Axis1JAX-RPC

Axis2

Tuscany

JAX-WS

JAX-RS JAX-WS RI

CXF

XFire

ServiceMix

ab JDK 6implementiert

verwendet

eingeschränkt

IBMWebSphere

SOAP Toolkits für Java

4

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Gliederung

• Die Standards: JWS, JAXB und JAX-WS• Axis2• Apache CXF• JAX-WS RI und Metro• Deployment mit JAX-WS• Fazit

Page 3: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

3

5

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

JAX-WS WSEE

JWS JAXB

JSR-250 JAX-RPC

JEE EJB

Servlet

JSR-171 JAX-R

SAAJ DOM

Beziehungen zwischen Java Standards

6

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Klasse Schema

JAXB

1 1

* *

Objekte DokumenteDokumenteDokumente

*

ObjekteObjekte

1

1 1

1

XML / Java Binding

Page 4: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

4

7

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

import javax.jws.WebService;import javax.jws.WebMethod;@WebServicepublic class HelloWorldService {

@WebMethodpublic String helloWorld() {

return "Hello World!";}

}

JSR-181: Web Services Metadata

8

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

A.Java@WebServicepublic void foo(){ ...}

A.classExecutable Binary+ Metadata

JSR-181 Runtime-Semantic Checks- WSDL Generierung-Lifecycle

compile deploy

Funktionsweise

Page 5: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

5

9

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

JAX-WS 2.1 Unterstützung für WS Standards

• SOAP 1.1, 1.2• WSDL 1.1 nicht WSDL 2.0• WS-I Basic Profile 1.0• Annotations JSR-175• WS Metadata JSR-181• Enterprise WS JSR-109• WS Security JSR-183

10

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

JAX-WS Non-Goals

• Rückwärtskompatibilität mit JAX-RPC 1.X• Plugable Data Binding• Unterstützung für SOAP Encoding• Unterstützung für J2SE < 5.0

Page 6: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

6

11

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Gliederung

• Die Standards: JWS, JAXB und JAX-WS• Axis2• Apache CXF• JAX-WS RI und Metro• Deployment mit JAX-WS• Fazit

12

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

IBM SOAP4JIBM SOAP4J

Apache SOAPApache SOAP

Axis1Axis1

Architektur 1

Architetur 2

Basis für Apache SOAP

Basiert auf DOM

Neuimplementierung mit SAX

Axis2Axis2

Architektur 3

Architektur 4 Neuimplementierung mit StAX

SOAP4J, Apache SOAP und AXIS

Page 7: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

7

13

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Axis2 Features

• Pojo Web Services• Spring Integration• WSDL2Java und Java2WSDL Generator• SOAP with Attachments• REST Style Web Services• Unterstützung für einige WS-* Standards• Modulare Struktur• Deployment: Service und Modul Archive

14

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Modul Modul Modul

Axis2Core

SOAP WSDL WS-Addressing

Kern ModulInformationModel

Kern ModulSOAPProcessingModel

Kern ModulClient-API

...

Axis2 Architektur

Page 8: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

8

15

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Web Container

Services

WebServiceWeb

ServiceWeb

ServiceWeb

Service

Axis2 Web Application

Modules

ModuleModule ModuleModule ModuleModule

Axis2 Client

Modules

ModuleModule ModuleModule ModuleModule

Axis2 Repository

16

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Bound Objectz.B. mitXMLBeans

AXIOMOM

AXIOMOM

BoundObjectz.B. ADB

XML

Data Binding

Page 9: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

9

17

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

JAX-WS mit Axis2

• Ab Axis2 Version 1.2• Axis2 1.4.1 unterstützt JAX-WS 2.0 und JAXB 2.0• JAXB Unterstützung ist noch „experimental“ (Axis2 1.4.1)• JAXB 2.1 u. JAX-WS 2.1 wahrscheinlich ab Version 1.5• Axis2 Subprojekt: axis2-jaxws• wsgen und wsimport aus Java SDK 6 verwenden• Auch ?wsdl verwendet Java 6 Werkzeuge

18

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Gliederung

• Die Standards: JWS, JAXB und JAX-WS• Axis2• Apache CXF• JAX-WS RI und Metro• Deployment mit JAX-WS• Fazit

Page 10: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

10

19

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Apache CXF

• Nachfolger von Celtix und Xfire• Services Framework für die „Protokolle“

– SOAP, REST, JMS, HTTP, …• Open Source unter ASF Lizenz• Lightweight

20

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Frontend

• Programmiermodell für Web Services• Verfügbare Frontends:

– Simple– JAX-WS

Page 11: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

11

21

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Aegis Databinding

• Bildet Java Objekte auf XML ab• Bietet sinnvolles Mapping ohne grossen Aufwand• Detailierte Customization ist möglich• War Databinding in XFire• Kann ohne CXF und XFire eingesetzt werden• Nur für Einsatz mit Simple Frontend empfohlen (dokumentiert und

getestet)

22

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Aegis für Web Services

• Manche finden das Aegis Binding eleganter als JAXB• Für Client ungeeignet, da wsdl2java fehlt• Keine Unterstützung für elementForm= “unqualified“• Kann alles deserialisieren• Kann nur deserialisieren wenn Mapping vorliegt

Page 12: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

12

23

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

CXF Bus

• Bietet gemeinsam genutzte Resourcen an• Resourcen:

– WSDL Manager– Binding Factory Manager– HTTP Destination Factory

• Basiert auf Spring– Wird per DI konfiguriert

• Verwaltet Erweiterungen• Interceptor Provider

24

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

<cxf:bus> <cxf:features> <cxf:logging /> <wsa:addressing /> <wsrm-mgr:reliableMessaging> <wsrm-policy:RMAssertion> <wsrm-policy:BaseRetransmissionIntervalMilliseconds="4000" /> <wsrm-policy:AcknowledgementIntervalMilliseconds="2000" /> </wsrm-policy:RMAssertion> <wsrm-mgr:destinationPolicy> <wsrm-mgr:acksPolicy intraMessageThreshold="0" /> </wsrm-mgr:destinationPolicy> </wsrm-mgr:reliableMessaging> </cxf:features></cxf:bus>

Spring Konfiguration für RM

Page 13: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

13

25

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Client ServerWSS4J WSS4J

Keystore

PublicKey

Client

PublicKey

Server

PrivateKey

Keystore

PublicKey

Client

CN = Client

Signieren von Nachrichten mit WSS4J

26

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Gliederung

• Die Standards: JWS, JAXB und JAX-WS• Axis2• Apache CXF• JAX-WS RI und Metro• Deployment mit JAX-WS• Fazit

Page 14: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

14

27

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Web Services Interoperability Toolkit WSiT

• Früherer Projektname: Tango• Bestandteil von Glassfish V2• Open Source Implementierung von WS-* Standards• Ziel:Interoperabilität mit .NET und WCF

28

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Reliability Transaction Security

CoreBasic web services

JAXB, JAXP, StAX, SAAJ, …

Transports

Quelle: https://metro.dev.java.net/discover

Metro

Page 15: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

15

29

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Gliederung

• Die Standards: JWS, JAXB und JAX-WS• Axis2• Apache CXF• JAX-WS RI und Metro• Deployment mit JAX-WS• Fazit

30

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Java 1.5 VM

TomcatBookWebApp

JAX-WS Servlet

@WebServiceclass BookService

Shared Loader

JAX-WS

JAXB

JAX-WS in JEE Container (< Version 5)

Page 16: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

16

31

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Glassfish Application Server

Web Container

Book Web App

@WebServiceClass BookService

Deployment in JEE 5 Server

32

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Endpoint.publish(“http://localhost:8080/book“,new BookServiceImpl())

VM >= 1.5

@WebServiceClass BookService

Deployment in VM

Page 17: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

17

33

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Gliederung

• Die Standards: JWS, JAXB und JAX-WS• Axis2• Apache CXF• JAX-WS RI und Metro• Deployment mit JAX-WS• Fazit

34

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

SOAP Engine Features

Page 18: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

18

35

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

(1) Unterstützt durch das zusätzliche Modul Apache Rampart(2) Unterstützt durch das zusätzliche Modul Apache Kandula2(3) Unterstützt durch das zusätzliche Modul Apache Sandesha2(4) über Apache WSS4J Interceptor

Unterstützung für WS-* Standards (Stand Juli 2008)

36

© 2008 Orientation in Objects GmbHAxis2, CXF und JAX-WS RI im Vergleich

Fazit

• JAX-WS und JAXB sind Standard– Mit JAX-WS sind Axis2, CXF und RI austauschbar

• Axis2– Bietet beste Schema Unterstützung

• CXF– Ist leichtgewichtig– Am besten (mit Spring) integrierbar

• JAX-WS RI– Einfach einzusetzen– Ausgereift– Bietet mit Metro beste WS-* Unterstützung

Page 19: Axis2, CXF und JAX-WS RI im Vergleich - OIO-Die …...3 5 © 2008 Orientation in Objects GmbH Axis2, CXF und JAX-WS RI im Vergleich JAX-WS WSEE JWS JAXB JSR-250 JAX-RPC JEE EJB Servlet

19

Orientation in Objects GmbH

Weinheimer Str. 6868309 Mannheim

[email protected]

? ?

???

Fragen ?