programmera.net -> jax -> normal för utskrift | info@programmera.net |
Grunderna i JAX-RPC 1.1
1. JAX-RPC 2. Klientsidan (SOAP,HTTP) 3. Serverdelen (SOAP,HTTP) 4. xsd-datatyper 5. xsd-datatyper: Primitiva typer och omslagsklasserna 6. 7. 8. 9. |
1. JAX-RPC
JAX-RPC står för Java API for XML-based RPC (RPC=Remote Procedure Call), ett namn som är något missvisade eftersom man idag pratar om webbtjänster, inte "XML-baserad RPC". Därför har denna specifikation bytt namn till JAX-WS i version 2.0 .
Med JAX-RPC kan man bygga webbtjänster och applikationer med XML-funktionalitet enligt SOAP 1.1 specifikationen, JAX-RPC är alltså en specifikation av hur en Javaimplementation av SOAP 1.1 ska se ut.
2. Klientsidan (SOAP,HTTP)
Bilden nedan (tagen från JAX-RPC specifikationen) föreställer de olika steg som klienten utför då man utför ett RPC-anrop över SOAP och HTTP:
Nedan beskrivs stegen i detalj:
3. Serverdelen (SOAP,HTTP)
Grafen nedan (tagen från JAX-RPC specifikationen) visar vad som händer då servern tar emot ett RPC-anrop (över SOAP och HTTP):
Nedan beskrivs stegen i detalj:
4. xsd-datatyper
I JAX-RPC 1.1 definieras hur datatyper som definieras i WSDL (eller XML Schema) ska mappas till Java. Först tittar vi på enkla typmappningar, som innefattar vanliga datatyper som typiskt förekommer i programmeringsspråk och databaser.
Tabellen nedan visar hur de enkla datatyperna mappas mot datatyper i Java:
Datatyper i xsd Datatyp i Java Beskrivning string java.lang.String - integer java.math.BigInteger Typen integer definieras som en sträng av siffror som kan vara hur lång som helst. Även typerna positiveInteger, nonPositiveInteger, negativeInteger, nonNegativeInteger, long long -9223372036854775808 < x < -9223372036854775807 int int -2147483648 < x < 2147483647 short short -32768 < x < 32767 byte byte -128 < x < 127 decimal java.math.BigDecimal - double double - float float - boolean boolean - date java.util.Data - dateTime java.util.Calendar - QName javax.xml.namespace.QName - hexBinary byte[] - base64Binary byte[] -
5. xsd-datatyper: Primitiva typer och omslagsklasserna
De xsd-typer som mappas mot primitiva datatyper är:
Datatyper i xsd Primär datatyp Beskrivning long long -9223372036854775808 < x < -9223372036854775807 int int -2147483648 < x < 2147483647 short short -32768 < x < 32767 byte byte -128 < x < 127 double double - float float - boolean boolean -
Ibland måste man mappa dessa xsd-typer mot omslagsklasserna ("wrapper classes") d.v.s. Long, Integer, Short, o.s.v.
Det finns 3 sätta att bestämma att ett element är "optional":
Nedan visas hur mappningen ser ut för omslagsklasserna:
Datatyper i xsd Omslagsklass Beskrivning long java.lang.Long -9223372036854775808 < x < -9223372036854775807 int java.lang.Integer -2147483648 < x < 2147483647 short java.lang.Short -32768 < x < 32767 byte java.lang.Byte -128 < x < 127 double java.lang.Double - float java.lang.Float - boolean java.lang.Boolean -