[Resolvido] Problema com N Contextos (tomcat, spring)

10 respostas
feltraco

Boa tarde.
Estou tentando fazer o deploy de uma aplicacao MAIS DE UMA VEZ, dentro do mesmo tomcat.
Estou eh, tenho a seguinte estrutura:

webapps/app1
webapps/app2
webapps/app2.1

Sendo que app2 e app2.1, sao a mesma, com parametrzaoes diferentes, de acesso a banco por exemplo.
Porem app1 e app2, funcionam, e a 2.1 nao.

Quando eu removo a pasta WEB-INF do diretorio app2.1, e restarto o tomcat ele acessa o index.
Imagino que eu tenha que alterar algo no web.xml, para deixar o contexto unico, mas nao sei ao certo como proceder.
Se alguem tiver alguma dica, agradeco.

FlwS

10 Respostas

feltraco

Nao encontrei nada ainda, alguem se habilita ?

leandrokjava

verifica se os nomes estão diferente dentro do teu web.xml

feltraco

@leandro
Alterei os nomes sim.
Testei somente com um index.jsp e funcionou.

Uma coisa que notei eh que ele levanta a primeira aplicacao.
Quando tenta levantar a segunda nao da certo.

Fiquei imaginando se ele pode registrar duas ou mais vezes o: com.mysql.jdbc.Driver.
Este drive eh carregado no Spring.

Lembrando que ambas sao a msm aplicacao com os mesmos codigos fontes e afins.

Grato

leandrokjava

Posta o erro do deploy aqui, para poder te ajudar.

feltraco

INFO: Deploying web application directory sig 28/04/2011 10:56:44 org.apache.catalina.loader.WebappClassLoader validateJarFile INFO: validateJarFile(P:\DESENVOLVIMENTO\SERVIDORES\Tomcat-7.0.11\webapps\sig\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class 28/04/2011 10:57:01 org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory xxx 28/04/2011 10:57:01 org.apache.catalina.loader.WebappClassLoader validateJarFile INFO: validateJarFile(P:\DESENVOLVIMENTO\SERVIDORES\Tomcat-7.0.11\webapps\xxx\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class 28/04/2011 10:57:15 org.apache.catalina.core.StandardContext startInternal GRAVE: Error listenerStart 28/04/2011 10:57:15 org.apache.catalina.core.StandardContext startInternal GRAVE: Context [/xxx] startup failed due to previous errors 28/04/2011 10:57:16 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc GRAVE: The web application [/xxx] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 28/04/2011 10:57:16 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads GRAVE: The web application [/xxx] appears to have started a thread named [RedeployManager] but has failed to stop it. This is very likely to create a memory leak. 28/04/2011 10:57:16 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads GRAVE: The web application [/xxx] appears to have started a thread named [Timer-1] but has failed to stop it. This is very likely to create a memory leak. 28/04/2011 10:57:16 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads GRAVE: The web application [/xxx] appears to have started a thread named [MySQL Statement Cancellation Timer] but has failed to stop it. This is very likely to create a memory leak. 28/04/2011 10:57:16 org.apache.coyote.AbstractProtocolHandler start

xxx eh o path onde coloquei a segunda aplicacao.

Vou re-configurar o log4j pq nao esta listando…

leandrokjava

Olhando rapidamente por cima. não consegui ver muito…

mas (chutando) quem sabe você tem que trocar os nomes:
persistence-unit name=“App1”
persistence-unit name=“App2”
do teu persistence.xml (devem estar duplicados).

Ou somente utilizar UM deles.

Testa ai.

feltraco

Nao tinha alterado.
Alterei agora, mas continua o mesmo erro.
Ele tenta levantar mas em seguida derruba a aplicacao.

Como eu faco para descobrir quem ou oq esta derrubando a app ?

No log do tomcat nao esta aparecendo nem no log4j, na vdd o log4j da app nem gera.

feltraco

Alterei um monte de coisas, em varios XMLs.
Continua a msm coisa, uma aplicacao funciona perfeitamente.

Se faco deply ed outras, so a primeira funciona.

feltraco

Nao faco nem ideia do porque… mas o problema era isso:

<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>

Removi esta bloco do WEB.XML, das aplicacoes e todas funcionarm perfeitamente.

Problema resolvido, se alguem souver explicar pq este codigo estava gerando este problema, gostaria de saber.

Abraco e obrigado pela ajuda.

feltraco

Depois de ter optado por trabalhar com N contextos, hoje conseguie fazer uma implementacao muito interessante.

Pesquisando sobre DataSources encontrei este post:

E nao eh que funcionou perfeitamente =]
Fica a dica.
[]`s

Criado 27 de abril de 2011
Ultima resposta 20 de jun. de 2011
Respostas 10
Participantes 2