Axis2 Schulung - predic8

Preview:

Citation preview

Version: 2.3

http://www.thomas-bayer.com

Thomas Bayer

Hauptstraße 3375050 Gemmingen

www.thomas-bayer.deinfo@thomas-bayer.de

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

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

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

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

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

6

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

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

Client API

Send()

TransportSender

Handlers

OutPipe

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

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

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

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

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

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;}

}

13

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

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

previousSibling nextSibling

OMNode

OMElement OMText

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(“...“)

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

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>

17

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

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

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

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

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

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

22

© 2005-2007 Thomas BayerAuswahl der Folien zur Axis2 Schulung

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

TransportSender

Mail Server

soap@x.com

TransportListener

SMTP Pop3

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

Recommended