Вы можете приступить к созданию ClassLoader
, расширив .war
, загрузив классы и отправив запрос в ваше приложение в нужное приложение. Это похоже на повторное изобретательство колеса (учитывая, что сервер приложений делает это уже) и, вероятно, очень сложно.
С другой стороны, это выглядит ужасно похоже на то, как работает portlets
. Портлеты упаковываются в файл .war
и затем используются порталом. Например, на портале Liferay вы можете загрузить портлет .war
с портала liferay (а не самого сервера приложения). Затем Liferay помещает загруженный файл .war
в каталог автоматического развертывания приложения. сервер, который затем будет развернут как обычное веб-приложение. Затем есть портлет-мост, который отправляет запрос с портала в нужное веб-приложение портлета и т. Д. Возможно, стоит поближе рассмотреть это.
Я не знаю ваших требований, но я бы окончательно постарался сделать это простым, так как такой материал может стать действительно сложным. Но вы можете: загрузить
- Пусть пользователя в
.war
из вашего приложения
- Манипулирования
.war
и web.xml
, чтобы гарантировать, что контекст что-то вроде /ParentApp/ChildApp
- Сохранить модифицированный
.war
в папку автоматического развертывания и пусть приложение. сервер развернуть его
Это обеспечит иллюзию того, что вы можете развернуть sub webapp из своего родительского webapp.
Это замечательно. Вы действительно знаете свои вещи. Большое спасибо. – Smith