23
Version: 2.3 http://www.thomas-bayer.com Thomas Bayer Hauptstraße 33 75050 Gemmingen www.thomas-bayer.de [email protected] Auszug aus Axis2 Schulung Dieses Dokument ist ein Auszug aus unserem Skript zur Axis2- Schulung. Es dient lediglich als Beispiel für unsere Kursunterlagen. Mehr zum Kurs finden Sie unter: http://www.thomas-bayer.com/axis2-schulung.htm

Axis2 Schulung - predic8

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Axis2 Schulung - predic8

Version: 2.3

http://www.thomas-bayer.com

Thomas Bayer

Hauptstraße 3375050 Gemmingen

[email protected]

Auszug aus Axis2 Schulung

Dieses Dokument ist ein Auszug aus unserem Skript zur Axis2- Schulung. Es dient lediglich als Beispiel für unsere Kursunterlagen.

Mehr zum Kurs finden Sie unter: http://www.thomas-bayer.com/axis2-schulung.htm

Page 2: Axis2 Schulung - predic8

2

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comSOAP4J, Apache SOAP und AXIS

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

Page 3: Axis2 Schulung - predic8

3

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comKleinster Baustein komplexer SOAP Interaktionen

Node

Sender

Node

EmpfängerSOAP Nachricht

Page 4: Axis2 Schulung - predic8

4

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comÜbung: Axis2 Installation

1.) Binary Distribution entpacken2.) export $AXIS2_HOME=/opt/axis2-1.1.13.) export $PATH=$PATH:$AXIS2_HOME/bin

Page 5: Axis2 Schulung - predic8

5

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comNachrichtenfluss bei Request/Response MEP

Client API AnwendungTransportListener

Transport

Listener

Transport

Sender

Dispatcher Message

Receiver

Transport

Sender

Page 6: Axis2 Schulung - predic8

6

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comOutPipe auf Client Seite

Client API

Send()

TransportSender

Handlers

OutPipe

Page 7: Axis2 Schulung - predic8

7

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comAxis2 Startup

1.) Deployment Modul erzeugt Axis Configuration- axis2.xml wird ausgelesen- Globale Konfiguration wird erzeugt

2.) Modul Archive werden gesucht und installiert3.) Service Archive werden gesucht und installiert4.) Module und Services werden der AxisConfiguration hinzugefügt5.) Kontexte werden aus der AxisConfiguration erzeugt

Page 8: Axis2 Schulung - predic8

8

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comContext und Description Hierarchie

ConfigurationContext

ServiceGroup

ServiceContext

OperationContext

MessageContext

AxisConfiguration

AxisServiceGroup

AxisService

AxisOperation

AxisMessage

Parent

Parent

Parent

Parent

Parent

Parent

Parent

Parent

1 1

1

1

1

1

1

1

1

1

1

1

1

1

n

n

n

n

1

2

3

4

5

6

7

1 7... Lookup Reihenfolge

Page 9: Axis2 Schulung - predic8

9

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comHandler

invoke()

Nachrichtenfluss

Pass by Reference

SOAPEnvelope

Attachments

Message Context

Properties

SOAPEnvelope

Attachments

Message Context

Properties

Page 10: Axis2 Schulung - predic8

10

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comPhasen einer InPipe

TransportPhase

Pre-DispatchPhase

DispatchPhase

UserDefinedPhase

ValidationPhase

MessageProcessingPhase

Handler Handler Message Receiver

Dis- patcher

Page 11: Axis2 Schulung - predic8

11

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comPhasen einer OutPipe

MessageInitializePhase

UserPhases

TransportPhase

Handler Handler Handler Handler Handler Handler

Page 12: Axis2 Schulung - predic8

12

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comBeispiel eines Axis2 Handlers

package com.thomas_bayer.axis2;

import org.apache.axis2.AxisFault;import org.apache.axis2.context.MessageContext;import org.apache.axis2.handlers.AbstractHandler;

public class LogHandler extends AbstractHandler {

public InvocationResponse invoke(MessageContext ctx) throws AxisFault {

System.out.println(ctx.getEnvelope().toString());

return InvocationResponse.CONTINUE;}

}

Page 13: Axis2 Schulung - predic8

13

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comAXIOM Model

previousSibling nextSibling

OMNode

OMElement OMText

Page 14: Axis2 Schulung - predic8

14

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comParameter und Properties

Parameter Property

statisch dynamisch

ausgelesen von axis2.xml, services.xml, module.xml

werden zur Laufzeit ermittelt

<parameter name=“...“>... </...>

msgCtx.setProperty(“...“)

Primitive Typen, String, OMElement Objekte

Leben in Description Hierarchie Leben in Context Hierarchie

Parameter p=msgCtx.getParameter(“...“)

Object o=msgCtx.getProperty(“...“)

Page 15: Axis2 Schulung - predic8

15

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comwsdl2java Optionen

-p Paketnamen für generierten Code-d Data Binding adb, xmlbeans, jibx, none-ss Server Side Code-sd Service Descriptor services.xml (nur mit –ss Option)-ssi Erzeugt Service Interface-nw Unwrap-o Output Verzeichnis-a Erzeugt rein asynchronen Stub-s Erzeugt rein synchronen Stub-t Erzeugt JUnit Test-g Erzeugt alles-u Erzeugt Klassen in separaten Dateien anstatt Inner Classes-sn Servicenamen für den Code generiert werden soll. Falls nicht

angegeben wird der erste im WSDL verwendet-ns2p , getrennte Liste von NS-Paketzuordnungen

Page 16: Axis2 Schulung - predic8

16

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comjava2wsdl Ant Task

<taskdef name="java2wsdl" classname="org.apache.ws.java2wsdl.Java2WSDLTask" classpathref="axis2.classpath"/>

<java2wsdl classname="swa.BildService" outputfilename="${build.res}/bild.wsdl" locationuri="http://localhost:8080/axis2/services/">

<classpath refid="server.classpath"/></java2wsdl>

Page 17: Axis2 Schulung - predic8

17

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comVon WSDL2Java erzeugte Verzeichnisstruktur

Page 18: Axis2 Schulung - predic8

18

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comGenerische HTTP Properties, die von Axis2 unterstützt werden

Property Bedeutung

CHUNKED HTTP Chunking

NTLM_AUTHENTICATION ms Proxy AuthentifizierungsinformationWer: Instanz von NTLMAuthentication

PROXY HTTP ProxyWert: Instanz von Proxy Properties

BASIC_AUTHENTICATION HTTP Basic AuthenticationWert: Instanz von Basic Authentication

SO_TIMEOUT Socket Timeout in Millis

CONNECTION_TIMEOUT Timeout der Verbindung

USER_AGENT HTTP User Agent. Default: Axis2

MC.GZIP_REQUEST Komprimiere Anfrage mit GZIP

MC_ACCEPT_GZIP Sendet HTTP Accept Header mit GZIP

COOKIE_STRING HTTP Cookie Header Feld

HTTP_PROTOCOL_VERSION HTTP Protokoll Version

Page 19: Axis2 Schulung - predic8

19

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comOptions Properties mit getter/setter ohne WS-Addressing

Property Bedeutung

Action SOAPAction bzw. WS-Addressing Action

Listener Transport Listener für eingehende Nachrichten

Parent Vater Options Objekt mit Default-Werten

SOAPVersionURI SOAP Version 1.1 oder 1.2

TimeOutInMilliSeconds Timeout Zeit für blockierende Aufrufe

TransportIn Beschreibung des eingehenden Transports

TransportInProtocol Protokoll für eingehende Nachrichten

TransportOut Beschreibung des ausgehenden Transports

ExceptionToBeThrown On SOAPFault

Rethrow Exception mit den Werten aus SOAPFault

Page 20: Axis2 Schulung - predic8

20

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comWS-Addressing Properties in Client Options

Property Bedeutung

Action SOAPAction bzw. WS-Addressing Option

FaultTo FaultTo EPR

From From EPR

MessageID Id der Nachricht

RelatesTo(String) RelatesTo Beziehung zu einer anderen Nachricht

Relationships Array mit allen RelatesTo Hems

ReplyTo ReplyTo EPR

Page 21: Axis2 Schulung - predic8

21

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comSOAP Session Scope

• Client und Server müssen sich der Session bewußt sein• Timeout default: 30s• Gültig in einer Service Group

<service name=“...“ scope=“soapsession“>...

</service>

Server ObjektServer Objekt

ClientClient

Page 22: Axis2 Schulung - predic8

22

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comMail Transport

TransportSender

Mail Server

[email protected]

TransportListener

SMTP Pop3

Page 23: Axis2 Schulung - predic8

23

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

http://www.thomas-bayer.comInFlow mit RM User Phase

InFlow

SecurityPhase

PreDispatchPhase

DispatchPhase

OperationInPhase

RMPhase