#java #jakarta-ee #war
Вопрос:
У меня есть приложение, которое является приложением портала, и я хочу разрешить другим пользователям добавлять в него свои приложения. Для этого мне нужен какой-то способ получить доступ к их приложениям в моем. Возможно ли это?
Ответ №1:
Вы не можете помещать войны внутри других войн. Вам нужен файл EAR, содержащий войны, EJBS и т. Д. Один из способов реализовать межвоенную связь-это вложить эту логику непосредственно в УХО. Все зависит от того, что вы пытаетесь сделать.
Комментарии:
1. Чтобы уточнить, EAR-это контейнер для других развертываемых пакетов JEE, таких как WARs, банки EJB и так далее.
Ответ №2:
способ сделать интер .ВОЕННОЕ сообщение осуществляется методом http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/ServletContext.html#getContext(java.lang.Строка)
ServletContext.getContext(URIOfOtherWAR_resource)
Я успешно использовал это для выполнения того, о чем вы говорите.
Ответ №3:
Возможно, вам нужна система плагинов или портлет, чтобы ваш пользователь не разрабатывал приложение war, а включал свой портлет в ваше приложение (war). Существует стандарт : JSR 168 и несколько реализаций : http://developers.sun.com/portalserver/reference/techart/jsr168/
Ответ №4:
Как отмечали другие, встраивание войн в войны-это не вариант. Тем не менее, у меня может быть для вас обходной путь.
Большинство веб-контейнеров, с которыми я знаком, имеют режим / возможность / «тестовое развертывание / автоматическое развертывание», в котором они автоматически развернут приложение, если ВОЙНА скопирована в нужный каталог.
Ваше приложение портала, безусловно, может разрешить загрузку WARs, и оно может хранить загруженные байты в заданном каталоге под заданным именем файла. Ваш веб-контейнер может сделать все остальное. Затем вы можете перейти по ссылке на новое приложение с вашего портала или что-то еще. Все это относительно легко сделать.
Однако имейте в виду, что это ужасная идея, если есть какие-либо проблемы с безопасностью. По сути, вы позволяете своим пользователям выполнять произвольный код на вашем сервере. Если вы полностью не доверяете всем потенциальным пользователям, которые не являются злонамеренными и совершенно компетентными (подумайте о бесконечных циклах), вы напрашиваетесь на много проблем здесь.
Комментарии:
1. Меня тошнит от этого. (По крайней мере, вы указываете на свои проблемы с безопасностью.)