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

StackOverflow https://stackoverflow.com/questions/178554

  •  05-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Другие советы

способ осуществления межвоенного общения заключается в методе:Военное общение осуществляется с помощью http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/ServletContext.html#getContext (java.lang.Строка)

ServletContext.getContext(URIOfOtherWAR_resource)

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

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

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

У большинства знакомых мне веб-контейнеров есть " тестовое развертывание / автоматическое развертывание " режим / возможность, где они автоматически развернут приложение, если WAR скопирован в правильный каталог.

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

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

scroll top