Сервлет Java с другими ссылками проекта - PullRequest
1 голос
/ 09 ноября 2010

Я столкнулся с серьезной проблемой при интеграции моего сервлета с другим проектом Java (не сервлетом)

У меня в Интернете работает Servet, у которого есть ссылка на проект другого проекта A, который возвращает мне обновленныйполе STATUS в проекте A.

Возможно ли одновременное выполнение проекта A, который обновляет STATUS, и сервлет всегда будет возвращать обновленное поле?

Сейчас я просто получаю значение по умолчаниюзначение STATUS, и когда STATUS обновляет, сервлет не получает обновленное значение.

пример потока выглядит следующим образом ... Я развертываю сервлет, я запускаю проект A, спустя 5 минут обновления проекта Aпеременная STATUS, удаленный клиент попросит сервлет получить последний статус STATUS из проекта A.

Из-за моей ошибки я не могу получить обновленный статус STATUS из сервлета, если я не запускаю проект A из сервлета.

Заранее спасибо за ответы!

1 Ответ

0 голосов
/ 09 ноября 2010

Прежде всего, IDE не является средой выполнения.Это среда разработки.JVM (часть JRE) является средой выполнения.В JVM совершенно отсутствует понятие «ссылки на проекты».Весь код Java, о котором он знает, - это классы, которые находятся в пути к классам времени выполнения.

Сервлеты обычно выполняются в контейнере сервлетов, который сам по себе является автономной средой выполнения.Если вы выполняете простое ванильное клиентское приложение Java (например, JAR с методом main()), оно также будет выполнено в его собственной автономной среде выполнения.

Если вы хотите, чтобы обе среды выполнения взаимодействовали друг с другомдруг с другом, вам придется искать другие способы, чем «ссылки на проекты».Если вы ссылаетесь на проект, его классы будут взяты в пути к классам времени выполнения, но экземпляры этих классов не будут совместно использоваться средами выполнения.

Однако существует несколько способов обмена информацией между средами выполнения.Чтение / запись общего файла (самый простой, но наиболее подверженный ошибкам), доступ к общей базе данных SQL или просто связь через RMI, JMS или даже HTTP.Выбор зависит от единственного функционального требования.

...