Вы не должны использовать подход ожидания / уведомления.
Будет лучше использовать Lock with Condidions https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Condition.html#await-long-java. util.concurrent.TimeUnit-
Ожидает тайм-аут и вернет false, если время ожидания заметно истекло до возврата из метода, в противном случае - true
В Eclipse вы можете объявить Ссылки на проект для данного проекта, в вашем случае - веб-приложения. Для этого щелкните правой кнопкой мыши проект веб-приложения, затем выберите Свойства> Ссылки проекта и выберите проект JavaApplication
. Это должно позволить вам вызывать код из проекта JavaApplication
из WebApplication
без необходимости создания WAR. Это решение для разработки .
Для стандартного развертывания (вне среды IDE) вы действительно должны создать стандартную WAR. Для этого вам нужно упаковать свое JavaApplication
как JAR, включая . файлы класса
и файлы в / resources
, но не библиотеки, от которых он зависит (JAR в / lib
). Эти зависимости фактически окажутся в каталоге WEB-INF / lib
WAR, рядом с JAR вашего JavaApplication
. Эти шаги обычно автоматизируются с помощью таких инструментов, как Ant или Maven .
Обычно интерфейс API создается с использованием удаленных служебных компонентов из приложения Java, которые предоставляют методы, которые вы хотите вызывать в веб-приложении. Вы должны включить в свое веб-приложение прокси-сервер интерфейса API, который вызывает компонент удаленной службы в приложении Java. Помните, что вам нужно будет зарегистрировать удаленный компонент в файле web.xml.
В свойствах проекта Eclipse добавьте проект в Зависимости модуля Java EE (Eclipse 3.5 или старше)
или Сборка развертывания (Eclipse 3.6 или новее) запись в свойствах проекта.
Таким образом, Eclipse позаботится о том, чтобы сделать все правильно, чтобы создать из всего этого WAR (она закончится на / WEB-INF / lib
). Никакая другая конфигурация не требуется, даже не возня с Путь сборки .
Подумайте о переходе на уровень EAR, если ваш веб-контейнер поддерживает это.
Сложная часть с общим кодом - это место, где должен быть размещен общий код. Копия веб-приложения PR? Копия в веб-контейнере? Если переусердствовать с «общими классами», это может привести к проблемам с загрузчиком классов.
Если вы создаете два отдельных веб-приложения, реорганизуйте общий Java-код в отдельный проект Eclipse и обращайтесь к нему из обоих проектов WAR.
РЕДАКТИРОВАТЬ: По-видимому, я неправильно прочитал описание проблемы и подумал, что вы спрашивали о существующем и новом коде совместного использования веб-приложений.
Если у вас есть проект Eclipse с вашим приложением, а другой - с вашим веб-интерфейсом, тогда вы может позволить вашему приложению экспортировать необходимые ресурсы, которые «Экспорт WAR» в Eclipse Java EE может обернуть в файл jar и поместить в WEB-INF / lib для вас. Вы должны указать это явно, поставив галочку в разделе «Свойства» -> «Зависимости модуля Java EE» для вашего веб-проекта. Ожидайте, что вам придется немного поэкспериментировать - мне потребовалось время, чтобы научиться этому.
РЕДАКТИРОВАТЬ: По-видимому, я неправильно прочитал описание проблемы и подумал, что вы спрашивали о существующем и новом коде совместного использования веб-приложений.
Если у вас есть проект Eclipse с вашим приложением, а другой - с вашим веб-интерфейсом, тогда вы может позволить вашему приложению экспортировать необходимые ресурсы, которые «Экспорт WAR» в Eclipse Java EE может обернуть в файл jar и поместить в WEB-INF / lib для вас. Вы должны указать это явно, поставив галочку в Свойства -> Зависимости модуля Java EE для вашего веб-проекта. Ожидайте, что вам придется немного поэкспериментировать - мне потребовалось время, чтобы научиться этому.
РЕДАКТИРОВАТЬ: По-видимому, я неправильно прочитал описание проблемы и подумал, что вы спрашивали о существующем и новом коде совместного использования веб-приложений.
Если у вас есть проект Eclipse с вашим приложением, а другой - с вашим веб-интерфейсом, тогда вы может позволить вашему приложению экспортировать необходимые ресурсы, которые «Экспорт WAR» в Eclipse Java EE может обернуть в файл jar и поместить в WEB-INF / lib для вас. Вы должны указать это явно, поставив галочку в разделе «Свойства» -> «Зависимости модуля Java EE» для вашего веб-проекта. Ожидайте, что вам придется немного поэкспериментировать - мне потребовалось время, чтобы научиться этому.
тогда вы можете позволить своему приложению экспортировать необходимые ресурсы, которые «Экспорт WAR» в Eclipse Java EE может обернуть в файл jar и поместить в WEB-INF / lib для вас. Вы должны указать это явно, поставив галочку в Свойства -> Зависимости модуля Java EE для вашего веб-проекта. Ожидайте, что вам придется немного поэкспериментировать - мне потребовалось время, чтобы научиться этому. тогда вы можете позволить своему приложению экспортировать необходимые ресурсы, которые «Экспорт WAR» в Eclipse Java EE может обернуть в файл jar и поместить в WEB-INF / lib для вас. Вы должны указать это явно, поставив галочку в разделе «Свойства» -> «Зависимости модуля Java EE» для вашего веб-проекта. Ожидайте, что вам придется немного поэкспериментировать - мне потребовалось время, чтобы научиться этому.