From c8271e5684e26b57880de7f1b8a3b0195ad6f68e Mon Sep 17 00:00:00 2001 From: Christof Rabensteiner Date: Mon, 15 Apr 2019 14:08:12 +0200 Subject: Add Marshaller for autogenerated Schema Types --- src/main/java/at/gv/egiz/moazs/MyMarshaller.java | 51 ++++++++++++++++++++++ .../java/at/gv/egiz/moazs/MyMarshallerConfig.java | 22 ++++++++++ 2 files changed, 73 insertions(+) create mode 100644 src/main/java/at/gv/egiz/moazs/MyMarshaller.java create mode 100644 src/main/java/at/gv/egiz/moazs/MyMarshallerConfig.java diff --git a/src/main/java/at/gv/egiz/moazs/MyMarshaller.java b/src/main/java/at/gv/egiz/moazs/MyMarshaller.java new file mode 100644 index 0000000..609a3c8 --- /dev/null +++ b/src/main/java/at/gv/egiz/moazs/MyMarshaller.java @@ -0,0 +1,51 @@ +package at.gv.egiz.moazs; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.xml.bind.*; +import java.io.ByteArrayInputStream; +import java.io.StringWriter; + +@Component +public class MyMarshaller { + +// @Value("classpath:mzs/app2mzs.xsd") +// private Resource mzsSchema; +// +// @Value("classpath:mzs/mzs_mypersondata_en.xsd") +// private Resource mzsPersonSchema; +// +// @Value("classpath:zusemsg/zuse_p2.xsd") +// private Resource msgSchema; +// +// @Value("classpath:zusemsg/zuse_mypersondata_en_p2.xsd") +// private Resource msgPersonSchema; + + + @Autowired + private JAXBContext context; + + public byte[] toBytes(JAXBElement element) { + try { + Marshaller marshaller = context.createMarshaller(); + StringWriter sw = new StringWriter(); + marshaller.marshal(element, sw); + return sw.toString().getBytes(); + } catch (JAXBException e) { + throw new RuntimeException(e); + } + } + + public JAXBElement toJAXBElement(byte[] bytes) { + try { + Unmarshaller unmarshaller = context.createUnmarshaller(); + + var stream = new ByteArrayInputStream(bytes); + return (JAXBElement) unmarshaller.unmarshal(stream); + + } catch (JAXBException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/at/gv/egiz/moazs/MyMarshallerConfig.java b/src/main/java/at/gv/egiz/moazs/MyMarshallerConfig.java new file mode 100644 index 0000000..9842d49 --- /dev/null +++ b/src/main/java/at/gv/egiz/moazs/MyMarshallerConfig.java @@ -0,0 +1,22 @@ +package at.gv.egiz.moazs; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; + +@Configuration +public class MyMarshallerConfig { + + @Bean + public JAXBContext jaxbcontext() throws JAXBException { + return JAXBContext.newInstance( + at.gv.e_government.reference.namespace.zustellung.mzs.persondata_.ObjectFactory.class, + at.gv.e_government.reference.namespace.zustellung.mzs.app2mzs_.ObjectFactory.class, + at.gv.e_government.reference.namespace.zustellung.msg.phase2._20181206_.ObjectFactory.class, + at.gv.e_government.reference.namespace.persondata.phase2._20181206_.ObjectFactory.class); + + } + +} -- cgit v1.2.3