JBoss - Deploy parcial de um projeto EAR

Aqui onde trabalho optamos por utilizar um único EAR, composto por um EJB e vários projetos WAR.
Existe alguma maneira, no JBoss, de não ser necessário reiniciar ou fazer um “full publish” no servidor para tornar válida uma alteração feita em arquivos de classe?

Fizemos um teste parecido hoje, deixando um projeto A chamando um contador por ajax enquanto alteramos um projeto B para ver se a publicação deste último afetaria na operação em andamento do primeiro. Através da aba “Servers” do Eclipse, mesmo fazendo o “full publish” somente do projeto que teve alteração (expandindo o projeto EAR e selecionando somente o projeto WAR que teve alteração), ao chamar a página deste que apontava para uma nova propriedade criada em um Managed Bean, a mesma não foi reconhecida. Somente quando fizemos um “full publish” no projeto EAR é que a alteração passou a valer. No entanto, a execução das chamadas AJAX do projeto A foi interrompida, haja vista que ele deleta todos os arquivos e faz o deploy inteiro da aplicação.

Se alguém já passou por uma situação destas e puder compartilhar aqui no fórum, seria de grande valia.
Abraços e muito obrigado pela atenção e disponibilidade de todos.

Guirald,

Qual versão do JBoss você está utilizando?
Até a versão 6 do JBoss - onde ainda é utilizado JMX - o carregamento das classes é feito no start do servidor. A configuração padrão para o carregamento de classes é de ClassLoader unificado. Você pode alterar para ClassLoader isolado só para fazer testes, mas pelo que você explicou, independente da configuração deste parâmetro as “classes de carregamento” deveriam ser atualizadas.

Ps.: Mencionei o ClassLoader isolado/unificado apenas para que você tenha um norte para fazer suas pesquisas na documentação do servidor de aplicação.

Até mais!

Olá, fabiozoroastro

Aqui estou utilizando a versão 7.1.1
Segundo o site http://www.infoq.com/br/news/2011/07/jbossAS7-detalhes: [quote]Sub-deployments, por exemplo pacotes WAR e EJB-JAR dentro de um EAR, também são isolados entre si[/quote], e ainda,

Pelo painel de administração de servidores do Eclipse (versão Indigo), não consegui fazer o deploy somente de um WAR. As modificações só surtam efeito quando é feito um full publish de todo EAR.

Obrigado

Guirald,

infelizmente não tenho outras dicas. :slight_smile:

Se conseguir, nos avise o que era.

Abraço.

Eu estou usando aqui uma estrutura semelhante, porém meus WARs ficam fora do EAR. Dentro do EAR eu tenho um EJB e dentro de cada WAR eu tenho os “clients” para acessar os EJBs (pode ser “remote” ou “local”).

Se faço uma alteração em um WAR faço o deploy somente dele. Porém se altero um serviço EJB e o “client”, daí precuso fazer o FULL.