Изменение типа содержимого запроса SOAP в Java - PullRequest
0 голосов
/ 23 марта 2019

Есть ли способ изменить тип содержимого входящего SOAP-запроса? Я пытаюсь изменить тип содержимого с text / xml на application / soap + xml.

Мой класс фильтра

public class SOAPFilter implements Filter {

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
            throws IOException, ServletException {

        SOAPRequestWrapper requestWrapper = new SOAPRequestWrapper((HttpServletRequest) request);
        filterChain.doFilter(requestWrapper, response);
    }

    @Override
    public void destroy() {
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {
    }
}

Мой запрос Wrapper

public class SOAPRequestWrapper extends HttpServletRequestWrapper {

    private ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    private Map headerMap;

    public SOAPRequestWrapper(HttpServletRequest request) {
        super(request);
        System.out.println("In Wrapper");
    }

    @Override
    public Enumeration<String> getHeaders(String name) {
        System.out.println("In method");
        List<String> headerVals = Collections.list(super.getHeaders(name));
        int index = 0;
        for (String value : headerVals) {
            headerVals.set(index, value.replaceAll("text/xml", "application/soap+xml"));
            index++;
        }
        return Collections.enumeration(headerVals);
    }

    @Override
    public String getHeader(String name) {
        System.out.println("In method1");
        String headerValue = super.getHeader(name);
        if ("Content-Type".equalsIgnoreCase(name)) {
            return headerValue.replaceAll("text/xml", "application/soap+xml");
        }
        return headerValue;
    }

}

Ни одно из утверждений не печатается в моих журналах, кроме одного в конструкторе оболочки. Я что-то здесь упускаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...