Axis2 Schulung - predic8
Transcript of Axis2 Schulung - predic8
Version: 2.3
http://www.thomas-bayer.com
Thomas Bayer
Hauptstraße 3375050 Gemmingen
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
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