У меня есть автономное, безголовое приложение для java-сервера, которое выполняет кучу обработки на основе очереди с базой данных, которую я собираюсь перенести на сервер приложений Java. У меня много функциональных возможностей java и немного JSP, но не много опыта сервлетов.Безголовый серфинг java?
Похоже, что подход заключается в том, чтобы просто привязать мое приложение к сервлету и развернуть его при запуске (и убедиться, что он развертывается только один экземпляр).
Несколько вопросов:
1) Поскольку мое приложение не имеет никакого HTTP (или другой) механизм запроса/ответа, было бы глупо реализовать сервлет, который не имеет URL отображения? Если посмотреть на API, я бы просто реализовать GenericServlet и просто оставить метод service() пустым?
2) Еще одна часть моего приложения java открывает/управляет собственными сетевыми сокетами (не-HTTP), чтобы принимать поток входящих данных. Я думаю, что потребуется немалая работа, чтобы заставить его вписаться в модель запроса/ответа сервлета. Это нормально, что сервлет открывает/управляет своими собственными сетевыми сокетами?
3) У нас также есть куча веб-приложений (в настоящее время в coldfusion), которые не очень хорошо интегрированы с приложением java (в том, что они могут общаться только через БД). Мы смотрим на рельсо (еще один сервлет), и я пытаюсь понять, насколько легко было бы для приложений coldfusion/railo (работающих на одном сервере приложений) напрямую общаться друг с другом. Может быть, веб-страница, отображающая текущую статистику/метрику во время работы java-движка и, в конечном счете, вызывающую часть бизнес-логики в java-движке.
Спасибо, Brian
У меня определенно есть куча потоков, которые я запускаю/управляю. Неужели так плохо, что у сервлета возникают потоки? Я читал, что он должен быть потокобезопасным, но ничего не видел о нерестах нитей. – Brian
@Brian - это обычно нахмуренная практика; потому что плохо управляемый поток, запущенный вашим сервлетом, может помешать контейнеру/серверу сервлета отвечать на команды выключения. Посмотрите на использование инфраструктуры Executor. –
@Brian - Почему нерестовые нити считаются плохими -> http://stackoverflow.com/questions/533783/why-spawning-threads-in-j2ee-container-is-discouraged/533847#533847. В вашем случае это будет отрицать ваши рассуждения об управляемости, поскольку вы делаете то, что контейнер не может управлять. – Robin