2012-02-29 1 views
2

Для нового проекта я хочу использовать компонентную структуру (думая о калитке или гобелене). Это приложение для интрасети, но я также должен предоставить Restful Webservices.Какая компонентная Java-Framework также может выполнять веб-службы?

После того, как googling вокруг i havent нашел какое-либо хорошее решение, описывающее, как интегрировать Wicket с любой совместимой с Jax-RS библиотекой.

Неужели кто-то сделал это раньше?

Я уже видел, что Wicket CAN предоставляет похожие URL-адреса, но я бы переключался между полноценным Wicket-Gui и webservice с помощью accept-header.

Все, что я нашел, предлагает создать другой призрак/URL-маршрут.

Если вы говорите, гобелен (или любой другой каркас) намного лучше, для чего я хочу, дайте мне знать. Но почему-то мне нравится калитка.

+0

Возможно, вы захотите взглянуть на игру. Это довольно легко учиться и очень мощно, с большим сроком хранения. – Eduardo

+0

Я пробовал играть и да, мне как-то понравилось. Но я напрямую использовал 2.0rc и столкнулся с некоторыми ошибками. Кажется, это не готово для меня. Я должен использовать устаревшую базу данных оракула. 1.st ошибка, с которой я столкнулся: ebean не поддерживает OnToMany с отдельной JoinTable. Он упоминается в некоторых списках рассылки, но, похоже, не исправлен. 2-й: я попробовал anorm с scala. Это не может обрабатывать индексы BigInt, которые поступают из нашей базы данных. Хватит играть за меня.:(Но это определенно содержит некоторые действительно приятные аспекты, если вы, возможно, начинаете с нуля. – crushervx

+2

Если вы хотите, чтобы один фреймворк обеспечивал как «нормальный» доступ к сети, так и REST, Wicket, безусловно, не является основой. Однако интеграция любой такой структуры с Wicket легко, поскольку точка входа в Wicket является единственным фильтром сервлета, сопоставленным с базовым url. Итак, все, что вам нужно сделать, - это сопоставить структуру REST с другим URL-адресом. – biziclop

ответ

2

Я бы рекомендовал использовать Spring "контракт первого" веб-службы или REST:

http://static.springsource.org/spring-ws/site/ http://www.ibm.com/developerworks/webservices/library/wa-spring3webserv/index.html

Особенно, если вас интересуют рамки. Весна много больше, чем веб-рамки MVC. Это дает:

  1. Dependency Injection
  2. Аспект-ориентированное программирование
  3. твердые модули Rock для веб MVC, настойчивость, удаленного доступа, обмен сообщениями, безопасность, веб-сервисов и т.д.

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

Внедрение веб-службы не должно знать и не заботиться о том, какая технология используется для реализации клиента. Это красота веб-сервисов: если все сделано правильно, они могут выжить дольше. Пользовательские интерфейсы могут приходить и уходить, но бизнес-логика и основы услуг могут оставаться. Они могут работать с пользовательскими интерфейсами, работающими на настольных компьютерах, в браузерах, мобильных устройствах и, возможно, даже на хэдз-ап в Google. Посмотрим.

+2

Я согласен с тем, что весенние скалы и очень хороши в веб-сервисах, но ... это а не компонент, как он просил. – digitaljoel

+0

POJO! = Компонент? – duffymo

+0

Никогда не пробовал Spring. Мышцы, основанные на компонентах, были бы более подходящими для интрасети (более продуктивными), потому что там вам не нужны самые горячие и фантастические ui. Это просто нужно работать. Я ошибаюсь? – crushervx

1

Ни играйте, ни Spring MVC не являются компонентами. В Wicket 1.5 вы можете катить собственный IRequestMapper, который проверяет заголовок и принимает решение о том, использовать ли обработку по умолчанию (на основе компонентов) или использовать свой пользовательский IRequestHandler, который будет поставлять JSON, XML, ... См. TextRequestHandler для вдохновения , Ваш пользовательский IRequestMapper должен быть установлен как «root», чтобы иметь возможность сначала получать входящие запросы, например, использовать HttpsMapper и CryptoMapper. Не стесняйтесь запрашивать дополнительную информацию в списке рассылки users @.

Смежные вопросы