Использование кэширования вложений в Axis2 SAAJ

Я обновляю существующий стек SOAP (как на стороне клиента, так и на стороне сервера) внутри приложения для поддержки двоичного содержимого с помощью приложений SOAP (SwA или MTOM). Существующая кодовая база широко использует SAAJ и использует реализацию Axis2 (1.5.6 как есть). (Другие части приложения уже используют Axis2, поэтому кажется разумным придерживаться его).

При построении SOAPMessage через SAAJ API (добавление узлов, элементов, экземпляров SOAP Attachments...) все работает просто отлично. Сериализованное сообщение SOAPMessage действительно является правильным сообщением xop/mtom.

Моя проблема возникает при синтаксическом анализе такого сообщения как InputStream через MessageFactory Axis2 (нет, мы не используем AxisServlet/Endpoint, иногда мы напрямую анализируем необработанные потоки). Это работает (я получаю обратно функционально эквивалентный экземпляр SOAPMessage), но я бы хотел, чтобы Axis2 использовал (в основе аксиомы) функцию кэширования вложений, чтобы вложения не считывались в основную память, и я не могу этого добиться.

Из моего понимания реализации Axis2 в axis-saaj.jar кажется, что SOAPMessageImpl жестко запрограммирован для создания экземпляра Axiom Attachments без включенной функции кэширования, и похоже, что нет настраиваемого способа (файл conf оси, системное свойство, собственное расширение сообщение, что угодно...) чтобы изменить это поведение.

Я что-то пропустил? Разве нет способа использовать axis-saaj с кэшированием вложений (или каким-либо другим способом получить из InputStream в экземпляр SOAPMessage)? Практически нет документации по axis2-saaj, которую я могу найти, и Axis User ML пока об этом молчал.

Спасибо!

0 ответов

Другие вопросы по тегам