A resposta depende de onde você localizou o (s) arquivo (s) de classe usado (s) pelo seu webapp.
Se você colocar uma determinada classe no caminho do carregador de classes comum do Tomcat de $ CATALINA_HOME / lib, ela ficará disponível para todas as aplicações web. O mesmo vale para o formulário em cache.
Se você usar o caminho do carregador de classes do aplicativo da Web Tomcat de webapps / webapp / WEB-INF / classes e webapps / webapp / WEB-INF / lib, as classes e os caches de classe correspondentes são isolados entre aplicativos.
Histórico técnico
O Tomcat não está de acordo com a forma como o Java processa nativamente as classes, mas usa um carregador de classes Java personalizado. Isso é para impor vários recursos relacionados a:
- processamento de classe dentro de um webapp
- cache de classe por webapp
- pré-carregamento e recarregamento de classes na inicialização / tempo de execução do webapplication
- segurança no carregamento / referência de classe
O carregador de classes personalizado Tomcat usa os carregadores de classe Bootstrap, Extensão e Sistema padrão Java, mas substitui a variável de caminho de classe usada pelo carregador de classes do Sistema para seu próprio caminho de classe. Isso tem o efeito de:
- substituindo o Mecanismo de Substituição de Padrões Aprovados fornecido com Java, com os próprios Tomcats.
-
adicionando dois carregadores de classes adicionais no final da hierarquia de carregamento de classes Java:
- O carregador de classes comum do Tomcat
- Um carregador de classes separado por webapp
O classpath original é ignorado pelo Tomcat.
Um detalhe importante é que um carregador de classes webapp não delega primeiramente o carregamento de classes aos seus pais, mas tenta carregar cada classe conforme solicitado. Cada classe carregada é subsequentemente armazenada em cache pelo carregador de classes webapp em questão. Este nível de cache / carregador de classe não pode ser compartilhado entre aplicativos da Web.
Todas as classes carregadas pelo carregador de classes comuns são disponibilizadas publicamente para todas as aplicações web, incluindo o cache. A colocação extensiva de classes no caminho do carregador de classes comuns é desencorajada da seguinte forma:
- quebra a portabilidade
- os requisitos da versão de classe podem ser diferentes entre o Tomcat e diferentes aplicativos da Web.
- a manutenção se torna um problema, qual classe pertence a quê?
Há um bom número de letras pequenas anexadas ao processo de carregamento / armazenamento / carregamento de classes. Se isso for importante, minha sugestão seria ler o capítulo pendente sobre carregamento de classes no Apache Tomcat profissional 6 .
Uma versão compactada foi escrita por alguém na página .