Можно ли включить / внедрить одно приложение Java EE (файл war) в другое? - PullRequest
3 голосов
/ 07 октября 2008

У меня есть приложение, которое является портальным приложением, и я хочу разрешить другим пользователям добавлять в него свои приложения. Для этого мне нужен какой-то способ получить доступ к их приложениям в моем. Возможно ли это?

Ответы [ 4 ]

4 голосов
/ 07 октября 2008

Вы не можете поместить WAR в другие WAR. Вам нужен EAR-файл, содержащий WAR-файлы, EJB-компоненты и т. Д. Одним из способов реализации взаимодействия между WAR-ами является упаковка этой логики непосредственно в EAR. Все зависит от того, что вы пытаетесь сделать.

2 голосов
/ 07 октября 2008

способ связи между .WAR - по методу http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/ServletContext.html#getContext(java.lang.String)

ServletContext.getContext (URIOfOtherWAR_resource)

Я успешно использовал это для того, о чем ты говоришь.

1 голос
/ 07 октября 2008

Как уже отмечали другие, встраивание WAR в WAR невозможно. Однако у меня может быть обходной путь для вас.

Большинство веб-контейнеров, с которыми я знаком, имеют режим / возможность «тестовое развертывание / автоматическое развертывание», при котором они автоматически развернут приложение, если WAR скопирован в правильный каталог.

Ваше приложение портала может, конечно, разрешать загрузку WAR, и оно может хранить загруженные байты в заданном каталоге под заданным именем файла. Ваш веб-контейнер может сделать все остальное. После этого вы можете сделать ссылку на новое приложение на своем портале или что-то еще. Все это относительно легко сделать.

Однако имейте в виду, что это ужасная идея, если есть какая-либо проблема безопасности. По сути, вы позволяете своим пользователям выполнять произвольный код на вашем сервере. Если вы не полностью доверяете всем потенциальным пользователям, чтобы они не были злонамеренными и не были совершенно компетентными (подумайте о бесконечных циклах), вы напрашиваетесь на большие неприятности.

1 голос
/ 07 октября 2008

Может быть, вам нужна система плагинов или портлет, чтобы ваш пользователь не разрабатывал военное приложение, а включал свой портлет в ваше приложение (война). Есть стандарт: JSR 168 и несколько реализаций: http://developers.sun.com/portalserver/reference/techart/jsr168/

...