@demon123
developer

Какой framework выбрать для написания Web Service?

Добрый вечер, нужно написать вэб сервис, который для передачи данных используется транспортный протокол (TCP), протокол передачи гипертекста (HTTP), а также стек протоколов и стандартов web-
сервисов (WSDL/SOAP). Обмен между сообщениями будет в XML-формате, в режиме запрос/ответ, при этом данные будут хранится в бд. Какой framework более удобный в использование, учитывая что я не имею опыта в написание вэб сервиса? Apache Camel(с ним не знаком) или Spring Integration(со спрингом немного знаком)? В наличии есть WSDL, XML - схемы.

Так же хотел обратиться, если кому интересно, или просто захочет помочь, пишите на почту: alikdemon@gmail.com (Мне нужна, просто консультация в таких вопросах как: с чего начать и т.д)

Буду благодарен любому отклику!
  • Вопрос задан
  • 3379 просмотров
Пригласить эксперта
Ответы на вопрос 2
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Посмею порекомендовать не связываться с xml, xsd, xslt, ws, и всё, что с этим связано. Это дорога в ад, кромешный. Вам будет казаться, что вы открыли кучу красивых и приятных технологий, но открыли то вы ящик Пандоры, пропахший нафталином 20-и летней давности.
И если какой тичер говорит, что это кул - смейтесь ему в лицо.

В мире давно все применяют более легковесные технологии типа json, stomp, amqp, rest и прочее. Передавайте данные в json через amqp, a обновляйте сервисами на основе rest по http. И для этого не нужно тащить мегабайтные фреймворки, делать преобразования, выписывать маппинги и отлаживаться с логарифмической линейкой. Это будет работать всегда и везде в связке с любым клиентом и языком программирования.

PS. работал и с apache axis и с servise mix и с кучей другого разного под xml. Ну, посмотрите на apache cxf, но по моему все из одной бочки нафталина.. habrahabr.ru/post/137543
PPS. И да, почитайте комментарии к статье, они рулят: " зачем писать километровый xml, чтобы просто вернуть дату и время", это так, лирика...
Ответ написан
@bobzer
Java EE Developer
Обычно, веб-сервисы работают под управлением контейнера - сервера приложений. Практически все современные сервера приложений имеют из коробки поддержку веб-сервисов. В соответствии со спецификациями Java EE, при разработке веб-сервиса вы просто указываете определенные аннотации в своем Java-классе (@WebService, @WebMethod), что сообщить серверу контейнеру о том, что этот класс он должен развернуть как веб-сервис. При разработке вы не обязаны знать какой именно фреймворк будет ответственен за то, чтобы опубликовать ваш веб-сервис в контейнере (сервере приложений). Если у вас еще нет серверного приложения, то его надо создать, перед этим выбрав сервер приложений (например, TomEE, WildFly aka JBoss). Создаёте приложение (.war), которое содержит в себе класс с аннотациями веб-сервиса и, например, JBoss сам найдет этот класс и развернет веб-сервис. В качестве фреймворка веб-сервисов, сервера приложений обычно используют CXF.

По поводу того, какой SOAP старый и плохой - это сугубо личные мнения, советую не заморачиваться, пока сами не разберетесь. Да, XML тяжелый в части расхода ресурсов железа (которое стоит дешевле труда программиста), но лично я пока не видел ни одного стандарта, который бы был так удобен при интеграции самых разнообразных информационных систем. Например, как-то пытался найти язык описания REST-сервисов, и не нашел ничего. Вот разверну я сложный REST-сервис, а потом каждому разработчику на пальцах объяснять что и откуда? А когда объясню, ему придется сесть и вручную все рисовать. REST/JSON хороши только пока вы используете их в пределах одной Системы, например, для обмена данными между клиентом и сервером. Но когда вы интегрируете несколько абсолютно разных платформ, которые к тому же разрабатывают программисты с разным уровнем профессионализма, тот стоит очень хорошо подумать...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
04 мая 2024, в 06:10
4000 руб./за проект
04 мая 2024, в 05:49
10000 руб./за проект
04 мая 2024, в 03:57
10000 руб./за проект