Harmoni mellan JAXB och JAXRPC i JavaEE 5

May 31st, 2006 by Johan Eltes

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:

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:

One Response to “Harmoni mellan JAXB och JAXRPC i JavaEE 5”

  1. [...] Web-Service XML to Java POJO binding. It entered the scene in Java EE 5 and Java SE 6. I wrote a blog entry a while back on it’s advantages over the predecessor (JAX-RPC). With WSDL-first (contract-first) [...]

Leave a Reply