É possível incluir / incorporar uma aplicação Java EE (arquivo de guerra) dentro de outro?

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

  •  05-07-2019
  •  | 
  •  

Pergunta

Eu tenho um aplicativo que é um aplicativo de portal e quero permitir que outros usuários adicionar seus aplicativos para ele. A fim de fazer isso eu preciso de alguma forma para ser capaz de acessar seus aplicativos no meu. Isso é possível?

Foi útil?

Solução

Você não pode colocar WARs dentro de outras guerras. Você precisa de um arquivo EAR para conter guerras, EJBs, etc. Uma maneira de implementar a comunicação inter-guerra é empacotar essa lógica diretamente na EAR. Tudo depende do que você está tentando fazer.

Outras dicas

a maneira de fazer comunicação entre .WAR é pelo método http: / /java.sun.com/j2ee/1.4/docs/api/javax/servlet/ServletContext.html#getContext(java.lang.String)

ServletContext.getContext (URIOfOtherWAR_resource)

Eu usei isso com sucesso para fazer o que você está falando.

Talvez você precise de um sistema de plugins ou portlet, para que o seu usuário não vai desenvolver uma aplicação de guerra, mas incluir seu portlet dentro do seu aplicativo (guerra). Não há um padrão: JSR 168 e várias implementações: http://developers.sun.com/portalserver/reference/techart/jsr168/

Como outros apontaram, a incorporação de WARs dentro guerras não é uma opção. No entanto, eu posso ter uma solução para você.

A maioria dos containers web que estou familiarizado com ter uma "implantação de teste / auto deploy" / modo de capacidade, onde eles vão distribuir automaticamente uma aplicação Se a guerra é copiado para o diretório correto.

O aplicativo portal certamente poderia permitir que WARs upload, e poderia armazenar os bytes enviados em um determinado diretório sob um determinado nome de arquivo. Seu recipiente Web poderia fazer o resto. Você poderia, então link para o novo aplicativo de seu portal, ou o que quer. Tudo isso é relativamente fácil de fazer.

No entanto, é aconselhável que esta é uma idéia horrível, se houver qualquer preocupação de segurança qualquer. Você é essencialmente permitindo que seus usuários para executar código arbitrário no seu servidor. A menos que você confia completamente todos os potenciais utilizadores para ser não-malicioso e perfeitamente competente (pense loops infinitos), você está pedindo um monte de problemas aqui.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top