Какой веб-сервер мне следует использовать, если я хочу запустить за ним Java-код? - PullRequest
2 голосов
/ 13 марта 2010

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

Из того, что я смог найти, кажется, есть две жизнеспособные опции: Apache Tomcat и Sun Java Server .

В чем причина выбора одного поверх другого? в чем сила каждого и в чем недостатки? Или, возможно, есть третий, который гораздо проще, гибче и менее громоздок.

Любой

Ответы [ 5 ]

5 голосов
/ 13 марта 2010

Легко, гибко и не громоздко, это может быть Jetty , но также Simpleweb может быть полезным. Вы не много говорите о своем программном обеспечении, поэтому я не совсем уверен, но для программы из командной строки я не думаю, что вам нужны все вещи JavaEE.
Основными серверами являются эти .
Я думаю, что обсуждение Apache Tomcat vs Glassfish (Sun Java Server) не имеет отношения к вашим потребностям, любой подойдет.

2 голосов
/ 13 марта 2010

Существует много контейнеров для веб-приложений Java , у всех них есть свои сильные и слабые стороны.Если вы ищете контейнер для поддержки бизнес-приложений, вам, вероятно, следует взглянуть на то, как они отличаются и как они подходят для вашего бизнеса и ИТ-драйверов.

Главное, чтобы все они поддерживалиспецификация сервлета - ваши веб-приложения могут работать в любом из них - это означает, что вы можете легко передумать.Некоторые из них также будут поддерживать больше спецификаций Java Enterprise Edition, поэтому могут быть слишком тяжелыми для ваших нужд.

Если вы только начинаете, я бы предложил Tomcat.Это простой, но надежный, быстрый запуск и запуск, а также очень простой веб-интерфейс для развертывания веб-приложений.

1 голос
/ 14 марта 2010

Ваш вопрос на самом деле слишком двусмысленный и широкий. Фактически вы можете запускать код Java на любой машине, которая вам нравится, независимо от языка, на котором вы запрограммировали веб-интерфейс. Например, вы можете создать веб-сайт на основе PHP, который взаимодействует с Java-приложением "бэкэнд" ( «приложение командной строки», как вы это называете). Единственное требование - наличие JRE на сервере. Тогда в основном все как веб-интерфейс достаточно: CGI, PHP, ASP, Python, и так далее, вы называете это. Пока у него есть доступ к базовой среде выполнения командной строки, что в примере с PHP должно быть сделано exec().

Но Java, фактически Java EE, также предоставляет интерфейс программирования веб-приложений: JSP / Servlet API , веб-компонент большого Java EE API . Это делает интеграцию с «приложением Java командной строки» гораздо более плавной. Вы можете просто поместить свое приложение в classpath и импортировать / получить доступ / использовать его в Servlet классе real Java:

YourApplication app = new YourApplication();
Result result = app.doStuff();
// ...

Чтобы иметь возможность запускать JSP / Servlet (в конце JSP фактически также является сервлетом), вам нужна конкретная реализация API сервлета (вся Java EE является лишь абстрактной спецификацией). Apache Tomcat хорош для начала, другой популярной альтернативой является Eclipse Jetty . Это «простые» сервлет-контейнеры, которые реализуют API сервлетов, причем Jetty является более встроенным подходом (вы можете настроить и запустить его как «простое ванильное» Java-приложение). Но если вам нужно поддерживать / покрывать и другие аспекты API Java EE, вам потребуется сервер приложений, такой как Sun Glassfish или JBoss AS (оба из которых путь использует Tomcat в качестве части сервлет-контейнера).

Чтобы узнать больше о JSP / Servlet, я могу порекомендовать Coreservlets.com учебные пособия .

0 голосов
/ 14 марта 2010

Стандартной концепцией для запуска кода внутри веб-сервера является «Servlet API» от Sun.

По сути, он предоставляет несколько интерфейсов, которые веб-сервер использует для вызова вашего кода, и определяет, как должен вести себя веб-сервер. Это позволяет писать очень общий код, который может работать в различных веб-контейнерах, реализующих API сервлетов. Подробности смотрите в статье Википедии - http://en.wikipedia.org/wiki/Java_Servlet.

Они бывают разных размеров, в зависимости от ваших потребностей. Некоторые достаточно малы для встраивания в ваше собственное приложение, некоторые очень большие. API сервлета позволяет вам не беспокоиться.

Для новичка самый быстрый способ начать работу - это загрузить полную версию Netbeans, которая включает полную поддержку для выполнения этой работы и имеет встроенный контейнер сервлета.

0 голосов
/ 13 марта 2010

Apache Tomcat должен делать добро.

...