Вопрос

На этой неделе мне пришлось изучить проект Java WebService, в котором использовались пакеты SOAP javax.xml.soap.*.

Раньше я не использовал это, кроме библиотеки Apache CXF, для создания веб-сервиса SOAP.

У меня есть вопрос по javax.xml.soap.*

Лучше ли он по производительности, чем CXF?

С точки зрения кодирования я считаю, что CXF великолепен, поскольку вообще не нужно беспокоиться о SOAP API, и просто используя аннотации, можно создать сервис за считанные минуты.

Также MessageFactory и SOAPConnection являются потокобезопасными?Я прошу об этом, чтобы каждый раз сохранять создание этих объектов.Если создание не является накладными, то проблем нет, но если да, то я хочу создать их только один раз.Я не смог найти в javadoc информацию о безопасности потоков.

Это было полезно?

Решение

javax.xml.soap — это низкоуровневый API, CXF — это реализация этого API, одна из многих реализаций.CXF использует javax.xml.soap, как и все реализации.

Более значимое сравнение проводится между реализациями JAX-WS, такими как JAX-WS-RI и CXF.

Другие советы

На самом деле, CXF НЕ использует javax.xml.soap (SAAJ) ниже, если это не требуется (присутствуют обработчики JAX-WS, элементы типа провайдера и т. д.).

В общем, использование SAAJ будет медленнее, чем CXF, поскольку оно не позволяет осуществлять потоковую передачу, которую обычно делает CXF.При использовании SAAJ все сообщение SOAP находится в памяти в виде DOM.Тем не менее, если вам ДЕЙСТВИТЕЛЬНО нужны ваши данные в виде DOM, это может быть немного быстрее, поскольку требуется меньше обработки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top