Каков наилучший подход к созданию автономного приложения Java, которое работает как процесс UNIX?

Мне нужно создать приложение Java для работы в качестве демона в UNIX (FreeBSD). Приложение должно запускаться так же, как и любой процесс UNIX. После запуска он сидит там и ждет команд от главного хоста/сервера. Команды передаются этому приложению через вызовы веб-служб RESTful, поэтому ему необходимо прослушивать сетевые подключения на определенном порту. В то же время ему необходимо получить доступ к ресурсам на внешних хостах/веб-сайтах, совершая исходящие http-вызовы.

Каков наилучший подход для написания такого приложения? Я подумываю написать отдельное приложение и включить библиотеки Grizzly и Jersey. Это правильный подход? Есть ли лучший подход?

(Кроме того, я не думаю, что мне следует писать обычное веб-приложение — файл войны — для развертывания в GlassFish или каком-то контейнере Java.)


person ikevin8me    schedule 18.08.2012    source источник
comment
Stackoverflow предназначен для вопросов о проблемах в коде, показывая код. Вам нужна общая помощь для разработки вашего приложения, которое принадлежит программистам, где оно, скорее всего, будет закрыто из-за неопределенности.   -  person Thorbjørn Ravn Andersen    schedule 18.08.2012
comment
Что бы вы ни делали, это будет процесс. Ничто не может работать в системе UNIX, кроме ядра, которое не является процессом. Даже init это обычный процесс.   -  person Linuxios    schedule 18.08.2012


Ответы (2)


Каков наилучший подход для написания такого приложения?

Не существует единого наилучшего подхода.

Я подумываю написать отдельное приложение и включить библиотеки Grizzly и Jersey. Это правильный подход?

Это будет работать, если вы будете следовать соответствующей документации.

Есть ли лучший подход?

Возможно.

(Кроме того, я не думаю, что мне следует писать обычное веб-приложение — файл войны — для развертывания в GlassFish или каком-то контейнере Java.)

Это другой подход.

Другим вариантом было бы использование легкого контейнера, такого как Jetty.

person Stephen C    schedule 18.08.2012
comment
Я был бы признателен, если бы вы объяснили, почему мне нужно использовать Jetty, если я могу прослушивать HTTP-соединения с помощью Grizzly, как написано в этой статье: stackoverflow.com/questions/6050407/ - person ikevin8me; 18.08.2012
comment
Вам не обязательно использовать Jetty. Альтернативой являются Grizzly и Jetty. Весь смысл моего ответа в том, что есть альтернативы, и ВЫ должны взвесить все за и против ДЛЯ ВАШЕГО ПРИМЕНЕНИЯ. - person Stephen C; 19.08.2012

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

person HeatfanJohn    schedule 18.08.2012