Контекст
У меня есть веб-служба SOAP, которая обслуживается экземпляром JBOSS EAP и вызывается через клиентский интерфейс SOAP.
В результате, возвращаемом этим веб-сервисом, может быть строка XML, возвращенная веб-сервисом так:
В клиенте пользовательского интерфейса SOAP будет отображаться та же строка, как показано ниже:
Как вы можете заметить, во время транспортировки этого сообщения некоторые символы (в частности, <
) были закодированы в <
: это нормально, поскольку кодировщик хочет избежать интерпретации строки как разметки, когда она просто вывод, который будет возвращен как есть.
Задача
Мы заметили, что когда строка слишком длинная, кодировка идет неправильно. Я попытался проанализировать и понять, и это все, что я могу получить:
- К концу строки некоторые символы
<
оставлены как таковые и не преобразуются в <
Очень странно, тег XML, который обычно формируется на стороне сервера:
<calculationPeriod>
...some stuff
</calculationPeriod>
... имеет второй c
, преобразованный в <
, и это явно нарушает XML:
<cal<ulationPeriod>
...some stuff
</calculationPeriod>
Мой вопрос
Честно говоря, я не знаю, как отладить эту проблему дальше. Все, что я могу заметить, это:
- Находясь внутри веб-службы (стека, которым я управляю), ответ обычно формируется и кодируется в XML с использованием открытого тега
<
.
- Оказавшись в клиентском интерфейсе SOAP (по всему стеку есть общие вызовы JBOSS и вызовы RMI), сообщение будет повреждено, как это.
Важно отметить, что это происходит только тогда, когда строка особенно длинная. У меня есть один вывод с длиной 8192
символов (до кодирования), который работает нормально, в то время как другой вывод с длиной 9567
символов (до кодирования) идет неправильно и является предметом этого вопроса.
приносит свои извинения:)
Извините, что не могу предоставить воспроизводимый вариант использования, а также использовать заголовок, который ничего не значит и все в этом вопросе.
Я готов предоставить любую дополнительную информацию для тех, кто может помочь, и перефразировать вопрос, как только я получу более четкое представление о том, в чем заключается проблема.
Я, конечно, много смотрел в Интернете, но не могу найти ничего похожего, возможно, я не ищу по ключевым словам.