I'm using String class as request object type at my SOAP request.
I need to disable escaping of JAXB and wrote a code like this:
@Bean
public Jaxb2Marshaller jaxb2Marshaller() {
Jaxb2Marshaller jaxb2Marshaller = new Jaxb2Marshaller();
Map<String, Object> map = new HashMap<String, Object>();
map.put("jaxb.formatted.output", true);
jaxb2Marshaller.setPackagesToScan("packageName");
map.put("com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler",
new CharacterEscapeHandler() {
@Override
public void escape(char[] ac, int i, int j, boolean flag,
Writer writer) throws IOException {
writer.write(ac, i, j);
}
});
jaxb2Marshaller.setMarshallerProperties(map);
return jaxb2Marshaller;
}
But, I think Spring doesn't accept com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler property to disable character escaping. It gives error like this:
2022-01-07 19:39:41.124 ERROR 45808 --- [ter.container-1] c.p.d.g.s.SendMailService : org.springframework.oxm.UncategorizedMappingException: Unknown JAXB exception; nested exception is javax.xml.bind.PropertyException: name: com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler value: com.paycore.delivery.gate.soap.SOAPConfig$1@2fbb54f6
at org.springframework.oxm.jaxb.Jaxb2Marshaller.convertJaxbException(Jaxb2Marshaller.java:955)
at org.springframework.oxm.jaxb.Jaxb2Marshaller.createMarshaller(Jaxb2Marshaller.java:731)
at org.springframework.oxm.jaxb.Jaxb2Marshaller.marshal(Jaxb2Marshaller.java:701)
at org.springframework.ws.support.MarshallingUtils.marshal(MarshallingUtils.java:81)
at org.springframework.ws.client.core.WebServiceTemplate$2.doWithMessage(WebServiceTemplate.java:399)
at org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:590)
at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:555)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:390)
at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:378)
How can I disable character escaping on Jaxb2Marshaller object?