Blogg
Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn
Här finns tekniska artiklar, presentationer och nyheter om arkitektur och systemutveckling. Håll dig uppdaterad, följ oss på LinkedIn
Om du har försökt hitta ett sätt att implementera en XML-baserad tjänst, som är oberoende av hur tjänsten publiceras, har du hittills haft en utmaning som heter duga. I vart fall om du avsåg dra nytta av standard-teknik för XML-binding. XML-bindning automatiserar överföring av data mellan XML-dokument till Java-objekt.
I och med framväxandet av produkter inom segmentet enterprise service bus, har fokus för SOA flyttats från WebService-teknik till det som är det viktiga: beskrivningen av den information som en tjänst ska bearbeta och eventuellt lämna ifrån sig som utdata. Man använder XML schema som formatbeskrivningsspråk. Har man beskrivit in- och utdata-strukturer som xml-scheman fristående från webservice-description language (WSDL)-baserade definitioner av web services, borde det ju vara enkelt att koda service-logiken så att den kan bearbeta in-data och leverera ut-data oberoende av hur tjänsten blir anropad (t.ex. som web-service eller via MQSeries som en message-driven bean).
Tyvärr har det inte var fallet. Före Java EE 5, var man tvungen att använda olika tekniker för Java-bindning, beroende på om in-datat kom via en web-service (definierad av WSDL + XML schema) eller som ren XML via någon annan infrastruktur, så som FTP eller MQSeries:
[Bild saknas]
I J2EE 1.4, måste man använda JAXB 1.0 som bindingsteknik om man inte går via web-services och JAX-RPC som bindingsteknik för web-servicebaserade anrop. Vissa applikationsservrar, t.ex. WebSphere 6, möjliggör kund-anpassad Xml-binding för web-services. På så sätt kan man på ett icke-standardiserat sätt använda JAXB för xml-bindning, oavsett på vilket sätt indata levereras.
I och med Java EE 5 ersätts JAX-RPC med JAX-WS. Till skillnad från JAX-RPC, definierar inte JAX-WS en egen modell för xml-bindning, utan baserar denna på JAXB 2.0:
[Bild saknas]