Сравнение между Sun Metro и Apache CXF для разработки веб-сервисов? - PullRequest
9 голосов
/ 22 октября 2009

Каковы относительные преимущества и недостатки Sun Metro и Apache CXF для разработки веб-сервисов на Java. Есть ли еще какие-то рамки, на которые мне следует обратить внимание?

Ответы [ 2 ]

9 голосов
/ 22 октября 2009

И Metro, и CXF являются стеками веб-служб, совместимыми с JAX-WS, и с точки зрения времени выполнения между ними очень мало выбора.

Тем не менее, CXF имеет значительно лучшую документацию и гораздо большую гибкость и дополнительную функциональность, если вы хотите выйти за пределы спецификации JAX-WS. На основании одной документации я бы выбрал CXF в течение каждого метрополитена.

Однако я бы выбрал Spring WebServices поверх Metro или CXF. Он не совместим с JAX-WS, но я не считаю это проблемой. Это также значительно проще и значительно более гибко, чем любой из них. Настоятельно рекомендуется.

5 голосов
/ 22 октября 2009

Я был на вашем месте несколько месяцев назад и в итоге стал смотреть на Метро поближе.

Для меня особенность убийства заключалась в том, что Metro использует стандартные аннотации для предоставления данного метода в качестве веб-службы и , чтобы весь код клея мог генерироваться автоматически во время выполнения. То есть никаких дополнительных шагов при сборке, развертывании и работе в стандартном контейнере сервлетов (я полагаю, 2.5) в Java 5, которая является нашей текущей платформой развертывания, не требуется.

Это очень хорошо сработало для нас.

Причина, по которой я обратился к стандартным аннотациям , заключается в том, что наши приложения, как правило, живут буквально в течение десятилетий, после чего требуется некоторая поддержка. Кодируя интерфейс вместо реализации, мы можем поменять все леса под кодом без изменения кода, реализующего веб-сервис. Через десять лет (или более) любая конкретная реализация, возможно, засохла и умерла, но с тех пор другие реализации могли подняться и быть немедленно подключаемыми.

Посмотрите, сколько вариантов у вас есть сегодня для контейнера сервлета ... В этом сила хорошего API!


Редактировать: Очевидно, среда выполнения Java 6 включает в себя стек Metro и минимальный веб-сервер. Другими словами, одна JRE может быть заменой лесов, упомянутых выше: D

...