Пределы сообщений JAXB или StAX
Вопрос
В настоящее время я занимаюсь разработкой WebService в среде Bea Websphere 6.1 с реализацией Axis 2, я стараюсь соблюдать текущие стандарты для веб-служб (JAXB, JAXWS, StAX ...).
Как долго может быть сообщение XML на этой платформе? Р>
Я искал, но ничего не нашел по этой теме.
Решение
Не знаю много об ограничениях вашей платформы, но в целом нет жестких ограничений. Использование Axis со стандартным стеком SOAP возьмет конверт SOAP и создаст его представление в памяти (dom или dom like), что ограничит размер кучи. В случае использования очень больших XML-файлов лучшим способом было бы использовать STaX, который является библиотекой потокового анализатора XML. Это удалит все ограничения из размера XML, который вы можете использовать или создать. Р>
Другие советы
Да, благодаря Jax-ws & amp; Работая с SOAP, вся полезная нагрузка привязывается: либо к дереву (более высокое использование памяти), либо к POJO / бинам (немного меньшее использование памяти). В любом случае, использование памяти будет пропорционально размеру сообщения.
Хотя теоретически может быть возможно создать потоковый / чанкованный интерфейс для обработки Soap, его реализовать нетривиально, и в настоящее время ни один стек не делает этого.