Кодирование происходит неправильно при транспортировке сообщения SOAP - PullRequest
1 голос
/ 13 мая 2019

Контекст

У меня есть веб-служба SOAP, которая обслуживается экземпляром JBOSS EAP и вызывается через клиентский интерфейс SOAP.

В результате, возвращаемом этим веб-сервисом, может быть строка XML, возвращенная веб-сервисом так:

enter image description here

В клиенте пользовательского интерфейса SOAP будет отображаться та же строка, как показано ниже:

enter image description here

Как вы можете заметить, во время транспортировки этого сообщения некоторые символы (в частности, <) были закодированы в &lt;: это нормально, поскольку кодировщик хочет избежать интерпретации строки как разметки, когда она просто вывод, который будет возвращен как есть.

Задача

Мы заметили, что когда строка слишком длинная, кодировка идет неправильно. Я попытался проанализировать и понять, и это все, что я могу получить:

  • К концу строки некоторые символы < оставлены как таковые и не преобразуются в &lt;
  • Очень странно, тег XML, который обычно формируется на стороне сервера:

    <calculationPeriod>
        ...some stuff
    </calculationPeriod>
    

    ... имеет второй c, преобразованный в <, и это явно нарушает XML:

    <cal<ulationPeriod>
        ...some stuff
    </calculationPeriod> 
    

Мой вопрос

Честно говоря, я не знаю, как отладить эту проблему дальше. Все, что я могу заметить, это:

  • Находясь внутри веб-службы (стека, которым я управляю), ответ обычно формируется и кодируется в XML с использованием открытого тега <.
  • Оказавшись в клиентском интерфейсе SOAP (по всему стеку есть общие вызовы JBOSS и вызовы RMI), сообщение будет повреждено, как это.

Важно отметить, что это происходит только тогда, когда строка особенно длинная. У меня есть один вывод с длиной 8192 символов (до кодирования), который работает нормально, в то время как другой вывод с длиной 9567 символов (до кодирования) идет неправильно и является предметом этого вопроса.

приносит свои извинения:)

Извините, что не могу предоставить воспроизводимый вариант использования, а также использовать заголовок, который ничего не значит и все в этом вопросе. Я готов предоставить любую дополнительную информацию для тех, кто может помочь, и перефразировать вопрос, как только я получу более четкое представление о том, в чем заключается проблема. Я, конечно, много смотрел в Интернете, но не могу найти ничего похожего, возможно, я не ищу по ключевым словам.

...