изменить заголовок HTTP в вызове веб-службы - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть веб-служба, где клиент отправляет заголовок http с действием SOAP с одинарными кавычками (...; action = 'myServiceOp' ).Мы использовали традиционный Websphere сервер приложений 8, но перенесли на Websphere Liberty .Теперь Liberty не нравится эта одинарная кавычка и она отвечает

The given SOAPAction 'myServiceOp' does not match an operation.

Поэтому я решил использовать обработчик для изменения этого параметра и сделал следующее в методе handleMessage:

Map<String, List<String>> requestHeaders = (Map<String, List<String>>) ctx.get(MessageContext.HTTP_REQUEST_HEADERS);
if(requestHeaders.get("Content-Type") != null) {
    List<String> cleanedContentType =  requestHeaders.get("Content-Type");
    String cleanedString = requestHeaders.get("Content-Type").get(0).replace("'", "");
    cleanedContentType.clear();
    cleanedContentType.add(cleanedString);
    requestHeaders.put("Content-Type", cleanedContentType);         
}

ВВ моих журналах я вижу, что заголовки запросов были установлены соответствующим образом, но мой веб-сервис все еще отвечает с вышеуказанной ошибкой.

Liberty использует CXF , и у нас уже было много проблем с этим,так что я подозреваю, что это как-то мешает.

Возможно, в файле server.xml есть конфигурация Liberty?

Если нужен перехватчик (или что-то специфичное для CXF), нужно ли мне дополнительноеособенность?Потому что я получаю ClassNotFound ошибки, когда я пытался это сделать в последний раз.

С уважением

...