OpenCMS lançando Java Exception no TomCat Start

1

A configuração: -

  • OpenCMS em execução no TomCat5.5
  • Sistema rodando no FreeBSD com o DiabloJVM

O sistema OpenCMS estava funcionando, depois de um reinício do TomCat ele parou de carregar. O servidor de banco de dados (postgres) em execução em um host diferente foi reinicializado e responde corretamente.

Alguma sugestão para executá-lo?

Quando o TomCat inicia, os seguintes erros estão no stdout:

org.apache.openejb.OpenEJBException: org.apache.xbean.recipe.ConstructionException: Error invoking constructor: public org.apache.openejb.tomcat.catalina.TomcatSecurityService(): Error invoking constructor: public org.apache.openejb.tomcat.catalina.TomcatSecurityService()

...

6/12/09 10:11:29 AM (I) WebappClassLoader.validateJarFile : validateJarFile(/usr/local/tomcat5.5/webapps/opencms/WEB-INF/lib/servlet.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class

'

6/12/09 9:21:08 AM (S) HostConfig.deployDirectory : Error deploying web application directory opencms
java.lang.ArrayIndexOutOfBoundsException: 26
    at org.apache.openejb.asm.ClassReader.readClass(Unknown Source)
    at org.apache.openejb.asm.ClassReader.accept(Unknown Source)
    at org.apache.openejb.asm.ClassReader.accept(Unknown Source)
    at org.apache.openejb.util.AnnotationFinder.readClassDef(AnnotationFinder.java:251)
    at org.apache.openejb.util.AnnotationFinder.find(AnnotationFinder.java:157)
    at org.apache.openejb.config.DeploymentLoader.discoverModuleType(DeploymentLoader.java:1090)
    at org.apache.openejb.tomcat.catalina.TomcatWebAppBuilder.loadApplication(TomcatWebAppBuilder.java:540)
    at org.apache.openejb.tomcat.catalina.TomcatWebAppBuilder.start(TomcatWebAppBuilder.java:234)
    at org.apache.openejb.tomcat.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:58)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4148)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
    
por Antitribu 12.06.2009 / 10:35

4 respostas

2

Também enfrentei essa exceção ao tentar implementar o OpenCMS e o OpenEJB na mesma instância do Tomcat. Parece que o OpenCMS e o OpenEJB não gostam um do outro.

No entanto, encontrei uma solução alternativa: depois de implantar o OpenCMS na inicialização do Tomcat, usei o aplicativo da Web do Gerenciador para fazer upload e obter o OpenEJB em execução. Funcionou bem para mim.

    
por 17.06.2009 / 22:30
1

Parece que seus arquivos de aplicativos estão corrompidos:

6/12/09 9:21:08 AM (S) HostConfig.deployDirectory : Error deploying web application directory opencms 
java.lang.ArrayIndexOutOfBoundsException: 26 at
org.apache.openejb.asm.ClassReader.readClass(Unknown Source) at
org.apache.openejb.asm.ClassReader.accept(Unknown Source) at 
org.apache.openejb.asm.ClassReader.accept(Unknown Source) at 
org.apache.openejb.util.AnnotationFinder.readClassDef(AnnotationFinder.java:251)

O servidor de aplicativos pode estar mantendo um diretório antigo de trabalho / temporário. Tente excluir enquanto está parado e reimplantando.

    
por 12.06.2009 / 10:48
1

Esse erro parece ter sido causado por outro aplicativo com falha. Provavelmente carregado após o servidor já ter iniciado, não foi até uma redefinição que o OpenCMS foi afetado. O provável culpado foi o openjb.

Foi resolvido removendo todos os webapps e substituindo-os um por um até que todos os servidores essenciais estivessem online.

Lamentavelmente, não posso testar mais para descobrir o erro exato no momento.

    
por 12.06.2009 / 13:15
1
Offending class: javax/servlet/Servlet.class

Este é um aviso bastante comum para aplicativos java. Como o classloader do contêiner do aplicativo da Web fornece a API e a implementação para a especificação do servlet, um aplicativo da Web é proibido de fornecer sua própria versão.

No entanto, como desenvolvedor de aplicativos wep, fica um pouco difícil compilar suas classes sem suporte a ferramentas, portanto, é tentador incluir esse servlet.jar no diretório lib/ . Isso torna muito fácil enviar acidentalmente um .war com ele também.

Por causa disso, o Tomcat verifica todas as classes à medida que elas são carregadas e, se encontrado, o carregamento de blocos da classe apresenta esse erro.

    
por 12.06.2009 / 13:36