Glassfish против Tomcat для RESTful Services

У меня есть фон .net, но относительно новый для Java-мира. Мы начали разработку сервисов RESTful (публичные веб-API) с JAX-RS, которые будут потребляться в основном мобильными платформами (Android, iPhone, Windows Phone и т.д.).

  • Нам нужны рекомендации по выбору соответствующего сервера, такого как Tomcat или Glassfish и т.д.? Пожалуйста, поделитесь разумом.
  • Также укажите, подходит ли наше решение JAX-RS для сборки сервисов RESTful.

Ответы

Ответ 1

Tomcat - это только контейнер сервлетов, что просто означает, что он не будет поддерживать функции Java EE.

Больше, чем просмотр служб RESTful, см. то, что вы намерены использовать для реализации функциональности вашего уровня. Если вы придерживаетесь только Servlet/JSP, Tomcat определенно будет очень разумным выбором. Если вам нужно использовать функции JavaEE, посмотрите на GlassFish.

Чисто с точки зрения функциональности GlassFish может делать все, что может сделать Tomcat, и многое другое, потому что это полностью совместимый с JavaEE сервер приложений. Но, обратите внимание, что Tomcat используется для большого эффекта для множества сложных приложений (которые не используют возможности Java EE).

С точки зрения производительности, Tomcat имеет легкий вес, работает очень быстро и хорошо поддерживается в среде Eclipse. Запуск GlassFish немного медленнее (около 11 секунд на моем ужасном ноутбуке), но разворачивается быстро.

Tomcat имеет приложение-диспетчер для развертывания базового приложения, но JNDI и аналогичные конфигурации ресурсов (например, пользовательские конфигурации) должны выполняться путем редактирования файлов XML вручную. Glassfish имеет приятную консоль администрирования, которая позволяет вам делать все это из центрального пользовательского интерфейса без ручного редактирования конфигурации.

В любом случае, то, что я получаю, заключается в том, что ваш выбор должен основываться исключительно на том, что вы собираетесь использовать с API Java/Java EE, и на сервере, который минимально подходит для этого счета. Не соглашайтесь с какой-либо популярностью, поскольку ваши требования являются вашим лучшим руководством.

Что касается реализации с JAX-RS, я не вижу в этом никаких проблем. Я работал с Джерси, и вот подглядывая взглядом два: http://www.slideshare.net/pelegri/jersey-and-jaxrs-presentation

Наконец, что касается SSL: оба Tomcat и Glassfish будут с радостью делать SSL, никаких проблем ни в чем.

GlassFish SSL tut: http://javadude.wordpress.com/2010/04/06/getting-started-with-glassfish-v3-and-ssl/

Удачи.

Ответ 2

Вы можете взглянуть на Play Framework. Это масштабируемая, безгосударственная, спокойная веб-инфраструктура. Обычно ему не нужен сервер приложений, такой как Tomcat. Он имеет собственный встроенный высокопроизводительный веб-сервер на основе Netty. Но приложение может быть упаковано как .war, если оно вам понадобится.

Создание веб-сервиса RESTful не будет проблемой при использовании Play.

Мы используем его в производственной среде и очень довольны этим. Разработка происходит очень быстро и легко. Это похоже на Ruby on Rails в Java World.

ИЗМЕНИТЬ

В качестве примера вы можете увидеть этот пост.