You are on page 1of 11

JAXRPCvsJAXWS

Uvod
Spletnestoritvesoprisotneenekajasa Razvojindopolnjevanjeobstojeihstandardov
opissporoil(SOAP),opisstoritev(WSDL),implementacije (JAXRPCoz.JAXWS)
JAXRPC1.0 dopolnitve JAXRPC1.1 prenova (potrebapo veprotokolih insporoilnoorienPranihWS)

JAXRPCJavaAPIsforXMLbasedRemote ProcedureCall JAXWSJavaAPIforXMLbasedwebservices

Interoperabilnostmed JAXRPCinJAXWS
JAXWSevednopodpiraSOAP1.1preko HTTP1.1
Enakooblikovanasporoilaselahkoprenaajoneodvisno odimplementacije

JAXWSevednopodpiraWSDL1.1

Razlike?
JAXRPC SOAP XML/HTTP (prenossporoilXML prekoHTTP) WSIBasicProles PodporavJavi PodporazaPpeXML Schema 1.1 nepodpira JAXWS 1.1in2.0 podpira

1.0 Java1.4 Lastenmodelpreslikave (podpiracca90%Ppovv shemi,ostaloSOAPElement)

1.1 Java5.0(annotaPons, generics,) JAXBpodpira preslikavovsehXML SchemaPpov

+drugelastnosP,zaradikaterihjeJAXWSnastalnadomesPlJAXRPC (sporoilnousmerjenafunkcionalnost,dinaminaasinhronafunkcionalnost,)

XMLSchemaPpiJavaPpi
JAXWSsamposebidejanskonedenira preslikavemedXMLSchemaPpiinJavanskimi Ppi
uporabljaJAXB(JavaArchitectureforXML Binding)

JAXWSjekomponenta(vskladutehnologij), kideniramodelproenjaspletnihstoritev
neukvarjasespodatkovnimnivojem!

XMLSchemaPpiJavaPpi
XMLSchema;p xsd:anySimpleType xsd:duraPon xsd:dateTime xsd:Pme xsd:date xsd:gYearMonth xsd:gYear xsd:gMonthDay xsd:gMonth xsd:gDay xsd:anyURI xsd:NMTOKENS xsd:IDREF xsd:IDREFS xsd:ENTITY xsd:ENTITIES JAXRPC1.1 java.lang.String java.lang.String java.uPl.Calendar java.uPl.Calendar java.uPl.Calendar java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.net.URI java.lang.String[] java.lang.String java.lang.String[] notsupported notsupported JAXWSoz.JAXB2.2 java.lang.Object javax.xml.datatype.DuraPon(newtype) javax.xml.datatype.XMLGregorianCalendar(newtype) javax.xml.datatype.XMLGregorianCalendar javax.xml.datatype.XMLGregorianCalendar javax.xml.datatype.XMLGregorianCalendar javax.xml.datatype.XMLGregorianCalendar javax.xml.datatype.XMLGregorianCalendar javax.xml.datatype.XMLGregorianCalendar javax.xml.datatype.XMLGregorianCalendar java.lang.String java.uPl.List<java.lang.String> java.lang.Object java.uPl.List<java.lang.Object> java.lang.String java.uPl.List<java.lang.String>

Preslikavaelementov,atributov
<xsd:sequence> <xsd:elementname="ime"type="xsd:string"/> <xsd:elementname="priimek"type="xsd:string"nillable="true"/> </xsd:sequence> <xsd:arributename="emso"type="xsd:string"use="required"/>

JAXRPC
privateStringime; privateStringpriimek; privateStringemso;

JAXWSviaJAXB2.0
@XmlElement(required=true) protectedStringime; @XmlElement(nillable=true) protectedStringpriimek; @XmlArribute(required=true) protectedStringemso;

VJAXRPCnibilomonougotovi;,aligrezaelementalizaatribut,podobnoza elemente,kisonillable=trueali;ste,kisoobvezni(required=true) vJAXWSsezauporabljajooznabe(JavaAnnota;ons)

PreslikavakompleksnihPpov
<xsd:elementname="os"type="tns:Oseba"/> <xsd:complexTypename="Oseba"> <xsd:sequence> <xsd:elementname="ime"type="xsd:string"/> <xsd:elementname="priimek"type="xsd:string"minOccurs="0"nillable="true"/> </xsd:sequence> <xsd:arributename="emso"type="xsd:string"use="required"/></ xsd:complexType>

JAXWSviaJAXB2.0 JAXRPC
publicclassOseba{ privateStringime; privateStringpriimek; privateStringemso; . }
@XmlAccessorType(XmlAccessType.FIELD) @XmlType(name="Oseba",propOrder={ "ime", "priimek" }) publicclassOseba{ @XmlElement(required=true) protectedStringime; @XmlElement(nillable=true) protectedStringpriimek; @XmlArribute protectedStringemso; }

JAXRPCkodaodjemalca
Paket:com.gama_system.www.webservices ExchangeRatesvmesnikstoritve <wsdl:servicename="ExchangeRates"> ExchangeRatesLocatorlokatorstoritve ExchangeRatesSoapremotevmesnik <wsdl:portTypename="ExchangeRatesSoap"> <wsdl:operaPonname="GetExchangeRatesByValueXML"> <wsdl:operaPonname="GetExchangeRatesByDateXML"> . ExchangeRatesSoapProxyclientproxywrapper ExchangeRatesStubclientstubwrapper

JAXWSkodaodjemalca
ExchangeRatesvmesnikstoritve omogoapridobivanjeproxyobjektov ExchangeRatesSoapproxyobjekt,kiima spomojoannotacijdeniranemetodestoritve

@WebMethod(operaPonName="ConvertToEUR",acPon="hrp://www.gamasystem.com/webservices/ConvertToEUR") @WebResult(name="ConvertToEURResult",targetNamespace="hrp://www.gamasystem.com/webservices") @RequestWrapper(localName="ConvertToEUR",targetNamespace="hrp://www.gamasystem.com/webservices",className="si.exchange.ConvertToEUR") @ResponseWrapper(localName="ConvertToEURResponse",targetNamespace="hrp://www.gamasystem.com/webservices",className="si.exchange.ConvertToEURResponse") publicBigDecimalconvertToEUR( @WebParam(name="dcmValue",targetNamespace="hrp://www.gamasystem.com/webservices") BigDecimaldcmValue, @WebParam(name="strBank",targetNamespace="hrp://www.gamasystem.com/webservices") StringstrBank, @WebParam(name="strCurrency",targetNamespace="hrp://www.gamasystem.com/webservices") StringstrCurrency, @WebParam(name="strDate",targetNamespace="hrp://www.gamasystem.com/webservices") StringstrDate, @WebParam(name="intRank",targetNamespace="hrp://www.gamasystem.com/webservices") intintRank); .

SerializijaXMLsporoil,kiseprenaajo: ConvertToEUR, ConvertToEURResponse ObjectFactoryclientstubwrapper

Povzetek
JAXWSjenaslednikJAXRPC
Nekajtehninihstvariostajaenakih(interoperabilnost),pavendar, spremenjenjeprogramskimodel

Zakajoz.kdajvztrajaPpriJAXRPC

Uporabaobstojeihinuveljavljenihstoritev PotrebnoostaPnastarejiverzijiJave ObveznopoiljanjeSOAPsporoil

ZakajpreiPnaJAXWS

UporabasporoilnousmerjenihAPIjev Uporabanaprednihnainovpoiljanjapriponk PotrebapoboljipodporizaXML(JAXB) Asinhroniprogramskimodel Potrebapoodjemalcih,kimorajorazpoznaPSOAP1.2 eneelimobiPvezaninaSOAPinelimouporabiPXML/HTTP povezovanje

You might also like