No JBoss (4.0.3), quando tenho duas (ou mais) apps (EARs) e quero que uma chame um EJB de outra, eu não duplico as interfaces e classes porque as duas apps compartilham as classes no classloader (UCL), a não ser que eu defina o isolamento.
Quando as apps estão em instâncias separadas eu costumo gerar um jar com as interfaces e classes necessarias.
Isso funciona normalmente.
Quando eu isolo as apps, eu tenho problemas de ClassCastException.
Como costumam fazer o empacotamento e a distribuição dos binários? Fazem assim mesmo ou de outro modo?
Quero definir um padrão de empacotamento aqui, definir que tipos de classes vão onde, se jogo tudo no EAR, ou crio JARs externos com as classes compartilhadas e coloco no LIB ou direto no diretório de DEPLOY… etc.
A idéia é ter aplicações/serviços compartilhados/distribuídos.
Dei uma lida aqui: http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossClassLoadingUseCases
Mas é um texto bem complicadinho.
Agradeço qualquer ajuda!