Является ли javax.xml.soap лучше, чем apache cxf? - PullRequest
3 голосов
/ 12 июня 2009

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

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

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

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

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

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

Ответы [ 2 ]

6 голосов
/ 12 июня 2009

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

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

5 голосов
/ 13 июня 2009

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

В общем, использование SAAJ будет медленнее, чем CXF, поскольку он не позволяет потоковую передачу, что обычно делает CXF. С SAAJ все сообщение SOAP находится в памяти как DOM. Тем не менее, если вы действительно хотите / нуждаетесь в данных в качестве DOM, это может быть немного быстрее, поскольку требуется меньше обработки.

...