Compartilhe classes de interface usando o mesmo carregador de classe no J2EE/WebLogic 10, sem usar o System ClassPath

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

Pergunta

Eu tenho uma "estrutura" em execução em um aplicativo WebLogic 10.0 (ou 10.3), onde a estrutura consiste em vários aplicativos corporativos, cada um responsável por um adaptador de recursos diferente. Um aplicativo cliente é implantado no domínio, usa o JNDI para obter referência a uma das classes do conector do adaptador de recursos, faz suas invocações e todos estão felizes.

Os ancestrais me deixaram com classes de interface para os conectores e mais no System ClassPath - isso funciona bem.

O novo requisito é eliminar "poluir" o caminho de classe do sistema, com o mais baixo impacto arquitetônico possível. Eu tentei o "J2EE LIBS" compartilhado específico do WLS, mas tive que ver que, embora eu possa empacotar as classes de interface em uma biblioteca e fazer referência a eles em outros aplicativos, as classes ainda são carregadas pelos carregadores de classe do aplicativo separados, e dessa maneira eu fico Uma ClassCastException quando tento lançar o objeto JNDI-LOOKUP'D na interface.

O que você sugere saber? Atualmente, eu aconselho os clientes a usar um domínio separado para essa estrutura com entradas do System ClassPath, mas não tenho certeza de que o aceitariam.

Obrigado!

Foi útil?

Solução

Ok, vou concluir que isso não é possível. Eu acho que uma solução adequada seria reescrever o aplicativo para usar invocações remotas de EJB para comunicação entre aplicativos.

Veja também Precisa de ajuda para entender o JNDI e uma determinada ClassCastException no J2EE

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