Jetty vs CXF / Какой выбрать? - PullRequest
       48

Jetty vs CXF / Какой выбрать?

1 голос
/ 12 ноября 2009

Я довольно новичок в мире Java и поражен красотой выбора между десятками библиотек, делающих более или менее одно и то же или нет.

То же самое с Jetty и CXF. Я ищу стек веб-сервисов, который имеет встроенную поддержку широкого спектра транспортов и протоколов.

У меня сложилось впечатление, что CXF является более новым проектом и будет предпочтительным выбором для новых программных проектов. Особенно, когда речь идет о приложениях, которые должны использовать различные протоколы и стандарты, такие как WS - *.

Можете ли вы высказать свое мнение о том, как эти рамки отличаются друг от друга?

Какой из них имеет более широкую поддержку различных протоколов и стандартов?

Какой из них вы бы предпочли относительно его дизайна, например, насколько хорошо они скрывают аспекты транспорта, аутентификации, авторизации, сериализации от логики приложения?

Любой ответ очень приветствуется!

Ура, Alex

Ответы [ 3 ]

11 голосов
/ 12 ноября 2009

Jetty - это контейнер веб-сервера и сервлета. CXF - это библиотека для веб-сервисов. Если вы хотите раздавать контент, как это делается на веб-сервере, выберите Jetty. Если вам нужно подключиться или предоставить веб-службы, выберите CXF. Я не уверен, что между ними есть размытая область.

7 голосов
/ 12 ноября 2009

Здесь есть недоразумение, Jetty и CXF похожи на яблоки и апельсины, сравнивать их не имеет смысла. Один из них - легкий движок сервлетов, другой - стек веб-сервисов.

Если вы ищете стек веб-сервисов (как я понимаю), рассмотрите JAX-WS RI или CXF, если вы ищете JAX-WS-совместимый стек (оба поддерживают сначала контракт, либо java-первый), или SpringWS («только» по контракту), или, может быть, Axis2 (лично мне это не нравится из-за его модели разработки и развертывания и его производительности).

Если вам не нужны причудливые WS- * вещи, я бы предложил использовать JAX-WS RI, который включен в Java 6 и совместим с WS-I Basic Profile 1.1 (поэтому он охватывает приличную кучу Стандарты WS- *). Если вам нужны более сложные вещи (такие как WS-SecureConversation, WS-SecurityPolicy, WS-ReliableMessaging, WS-Trust, WS-AtomicTransactions / Coordination, WS-MetadataExchange, SOAP через TCP, предоставляемые WSIT / Tango), рассмотрите возможность использования Metro ( Метро = JAX-WS RI + WSIT / Tango).

(РЕДАКТИРОВАТЬ: Ответ на комментарий от OP о поддержке WS-SecureConversation.

На самом деле, я думаю, что стек, который поддерживает большинство стандартов WS- *, - это Metro. Возможно, вы захотите проверить Apache Axis2, CXF и Sun JAX-WS RI в сравнении для получения более подробной информации. Но очень маловероятно, что вам понадобятся все из них, и все могло немного измениться после публикации статьи. Так что CXF действительно может быть альтернативой. Например, что касается WS-SecureConversation, CXF также поддерживает его в соответствии со своей документацией , но только с проектами "wsdl-first". Без более подробной информации о том, что вы собираетесь делать, трудно дать вам более точный ответ о том, какой из них лучше для вас.)

0 голосов
/ 12 ноября 2009

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

CXF выглядит интересным выбором. Я использую только непосредственные реализации, и CXF был довольно новым, я думаю, что это продолжение проекта XFire.

CXF выглядит мудрым выбором . Если вы сомневаетесь, я бы сказал, пойти на стандарты и рамки, построенные на них. Я бы сказал, просмотрите документацию, и по сложным вопросам вы можете подписаться на некоторые списки рассылки.

...