JAXB Customizing - XMLGregorianCalendarDie Verwendung eines XMLGregorianCalendar bei der Generierung von Webservice Client Klassen ärgerte mich immer wieder. Im SourceCode sieht man immer wieder unschöne Konvertierungen nach Dies habe ich zum Anlaß genommen um mich mit JAXB Customizing zu beschäftigen. Die Client-Klassen wurden mit Maven und dem Apache CXF Customizations können folgendermaßen an den JAXB Binding Compiler übergeben werden: Um den xmlType
<jaxb:bindings version="2.0"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">
<jaxb:globalBindings>
<jaxb:javaType name="java.util.Calendar" xmlType="xsd:dateTime"
parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime"
printMethod="javax.xml.bind.DatatypeConverter.printDateTime"/>
</jaxb:globalBindings>
</jaxb:bindings> Nach Neugenerierung der Klassen wird jede Property des xmlTypes xsd:dateTime eine korrespondierende Java Property des Types java.util.Calendar (momentan dann immer GregorianCalendar).Hier ist auch noch ein Ausschnitt der pom.xml<plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin</artifactId> <version>2.4.0</version> <executions> <execution> <id>generate-sources</id> <phase>generate-sources</phase> <configuration> <wsdlOptions> <wsdlOption> <wsdl>example.wsdl</wsdl> <bindingFiles> <bindingFile>jaxb-binding.xml</bindingFile> </bindingFiles> </wsdlOption> </wsdlOptions> </configuration> <goals> <goal>wsdl2java</goal> </goals> </execution> </executions> </plugin> Über diese Konfiguration für den xjc-Compiler und die eigene Implementierung von parseDateTime und printDateTime ist es auch möglich bspw. JodaTime- Klassen in den generierten Webservice Client Stubs zu verwenden.
| Willkommen auf dem avono BlogHier auf dem avono Blog finden Sie in regelmäßigen Abständen sowohl technische Neuigkeiten aus unserer Partnerproduktwelt als auch nützliche Entwicklertipps.Und jetzt kommt der obligatorische Disclaimer: Die Ausführungen der Blogeinträge spiegeln nicht die Meinung der avono AG sondern nur die Sicht der einzelnen Autoren wider. Weitere Blogbeiträge JIRA5 – Statusprüfung abgegebener Aufgaben
am 30. April 2012 FishEye als Git Repository Manager
am 12. April 2012 Unite - Erste europäische Atlassian Anwenderkonferenz
am 11. April 2012 So macht Groovy Scripting in JIRA mehr Spaß
am 22. Dezember 2011 Mens sana in corpore sano
am 15. August 2011 |
