Какой сервер приложений мне выбрать для моего проекта? - PullRequest
1 голос
/ 27 апреля 2010

В настоящее время я разрабатываю приложение для некоторых исследователей в моем университете. Это небольшая Java-программа, которую можно использовать из командной строки. Следующим шагом является упаковка этой программы и ее развертывание на сервере приложений. Некоторые клиентские программы отправляют запросы на сервер, который вызывает инструмент, который я написал. В последнее время мы добавим больше инструментов на сервер, и он должен отправить запросы нужному инструменту. Какой сервер приложений соответствует моим потребностям? Я искал Tomcat, Jetty и Glassfish, но кажется, что они используются только для веб-приложений. Можно ли использовать эти серверы в каком-либо контексте, отличном от веб-контекста? Какой пакетный архив я должен использовать (jar, war)? Любой совет?

Ответы [ 4 ]

2 голосов
/ 27 апреля 2010

Вам даже нужен сервер приложений? Ничто не мешает вам добавлять необходимые сетевые привязки и развертывать их самостоятельно.

Из упомянутых вами серверов у вас есть две разные категории: контейнеры сервлетов и полнофункциональные серверы Java EE

Tomcat и Jetty - контейнеры для сервлетов. Это не означает, что вы можете выполнять с ними только веб-операции и вручную добавлять необходимые библиотеки для получения полноценного сервера Java EE.

Glassfish - это полнофункциональный сервер Java EE, который можно сравнить с JBoss (оба с открытым исходным кодом) или коммерческими конкурентами Weblogic и Websphere.

Иногда этот вопрос прост, поскольку среда, в которой вы работаете, требует определенного вида сервера приложений. Вы должны проверить это в первую очередь.

Если вы не обязаны использовать сервер приложений, я бы спросил, почему вы считаете необходимым использовать сервер приложений?

2 голосов
/ 27 апреля 2010

Некоторые клиентские программы отправляют запросы на сервер, который вызывает инструмент, который я написал.

Большой вопрос в том, какую технологию на стороне сервера и какой протокол связи можно использовать между клиентами и сервером. В основном у вас есть два основных варианта: HTTP и веб-сервисы (в этом случае рассмотрите возможность использования JAX-WS или JAX-RS) или RMI-IIOP и EJB (в этом случае вам придется использовать сервер, совместимый с Java EE, например GlassFish).

Я искал Tomcat, Jetty и Glassfish, но кажется, что они используются только для веб-приложений.

Не совсем. Как я уже сказал, их также можно использовать для приложений, ориентированных на веб-сервисы. А GlassFish можно использовать для приложений EJB.

Какой архив пакетов мне использовать (jar, war)

Упаковка будет зависеть от типа приложения, которое вы напишите, это не то, что вы выберете заранее, это просто следствие. EJB-пакеты упакованы в EJB-JAR и обычно развертываются внутри EAR; Веб-службы на основе сервлетов развертываются внутри WAR.

Вам действительно нужно подумать о том, какую технологию использовать в первую очередь (с текущим уровнем детализации я не могу дать больше рекомендаций).

0 голосов
/ 27 апреля 2010

На самом деле мы не можем ответить с таким количеством элементов. - Что ты планируешь делать - с какими технологиями - Где вы планируете разместить свое приложение (у вас есть бюджет?) - На каком языке написаны клиенты (даже будущие)? - Могут ли клиенты быть на мобильных телефонах (добавить некоторые технологические ограничения ...) ....

Также было бы здорово узнать, какой запрос будут делать клиенты и какой ответ будет предоставлять сервер ...

На самом деле, как вы говорите, все эти серверы приложений могут делать то, что вы хотите ...

Я искал Tomcat, Jetty и Glassfish, но кажется, что они используется только для веб-приложения

Вы могли бы даже создать веб-приложение (сервлет) и на стороне клиента использовать httpclient для вызова этого сервлета ... Есть так много вариантов:)

Живой Париж!

0 голосов
/ 27 апреля 2010

Не понимаю, почему вы захотите использовать tomcat, glassfish или jetty для программы командной строки.

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

Возможно, вы также захотите взглянуть на Java Webstart, который делает развертывание новых версий быстрым.

...