Última atualização em
May 06, 2021 11:42:47 PM GMT
|
Também se aplica a Communiqué 3, Communiqué 4
Problema
As instâncias estão em execução no WebLogic e o arquivo log4j.jar está em APP-INF/lib. Ao tentar iniciar a instância de publicação (ou a segunda instância no mesmo servidor de aplicativos), ocorre um erro semelhante a:
javax.servlet.ServletException at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:909) at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:873) at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:812) at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:3281) at weblogic.servlet.internal.WebAppServletContext.preloadServlets(WebAppServletContext.java:3226) at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:3207) at weblogic.servlet.internal.WebAppServletContext.setStarted(WebAppServletContext.java:5737)
Solução
Siga um destes procedimentos:
- Não coloque o log4j.jar no carregador de classe comum/compartilhado. Não é uma boa idéia ter um log4j compartilhado para todos os aplicativos Web, já que eles não usam suas próprias categorias. Por exemplo, não é possível dizer qual aplicativo Web origina a mensagem de log.
- Mova os seguintes jars para o carregador de classe comum:
- crx-commons.jar
- crx-api.jar
- jcr.jar
- commons-logging.jar
- commons-collections.jar
- xercesImpl.jar
Informações adicionais
O log4j é global para todas as classes no mesmo carregador de classe. Uma classe no aplicativo Web de criação registra o FmtLogger (em crx-commons.jar) como registrador na categoria "global" do log4j. Então, a classe de publicação tenta adquirir o mesmo registrador. Há uma exceção de conversão de classe, porque ela possui outra versão do FmtLogger em seu caminho de classe.
Fazer logon em sua conta