Пользовательский CharacterEscapeHandler не запускается при загрузке приложения весной (Jaxb2Marshaller) - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь настроить маршаллер так, чтобы он не конвертировал '<' в '& lt;' </strong> et.Я реализовал пользовательский CharacterEscapeHandler, но он, кажется, не срабатывает, когда я делаю запрос.Я нашел несколько похожих тем, но, к сожалению, нет правильного решения.Я даже читал, что это весенняя ошибка, я прыгаю, это не так.Мой код

@Bean
public Jaxb2Marshaller marshaller() {
    Jaxb2Marshaller marshaller = new Jaxb2Marshaller();

    Map<String, Object> props = new HashMap<>();

    props.put("com.sun.xml.bind.marshaller.CharacterEscapeHandler",
            new CharacterEscapeHandler() {
                @Override
                public void escape(char[] ac, int i, int j, boolean flag,
                        Writer writer) throws IOException {
                    System.out.println("I AM HERE");
                    writer.write(ac, i, j);
                }
            });
    marshaller.setMarshallerProperties(props);

    marshaller.setContextPaths(path);
    return marshaller;
}


@Bean
public SOAPClientConnector soapConnector(Jaxb2Marshaller marshaller) {
    SOAPClientConnector client = new SOAPClientConnector();
    client.setMarshaller(marshaller);
    client.setUnmarshaller(marshaller);
    return client;
}

И я использую его вот так.

getWebServiceTemplate().marshalSendAndReceive(url, request);
...