Erro ao publicar aplicação VRaptor

32 respostas
vitor.morales

Boa noite pessoal,

Estive desenvolvendo um projeto com VRaptor e ao publicar ele no servidor de aplicação (Apache Tomcat) tive o seguinte problema.

log4j:WARN No appenders could be found for logger (br.com.caelum.vraptor.config.BasicConfiguration).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Mar 12, 2013 8:07:33 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error filterStart
Mar 12, 2013 8:07:33 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/IPMan2] startup failed due to previous errors

Alguma luz ?

Agradeço desde já

Abraços !

32 Respostas

Rafael_Guerreiro

Você habilitou o LOG4J na sua aplicação? Se sim, habilita ele para a gente ver o que o tomcat tem a dizer.

vitor.morales

Desculpa a ignorância mas Como eu faço isso ?

Rafael_Guerreiro

É bem simples: primeiro crie um arquivo chamado log4j.properties na pasta src do seu projeto.

depois, adicione algumas configurações (modifique para o seu projeto)

log4j.rootLogger=WARN,consoleAppender
# Troque o pacote
log4j.logger.seu.pacote.raiz=DEBUG,dailyFile

log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=%-2d{dd/MM/yy HH:mm:ss} %5p %c:%L%n%m%n

log4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppender
# Troque o nome do arquivo
log4j.appender.dailyFile.File=${catalina.home}/logs/NOME_DO_SEU_ARQUIVO.log
log4j.appender.dailyFile.DatePattern='.'yyyy-MM-dd
log4j.appender.dailyFile.layout=org.apache.log4j.PatternLayout
log4j.appender.dailyFile.layout.ConversionPattern=%-2d{dd/MM/yy HH:mm:ss} %5p %c:%L%n%m%n

Depois você pode pesquisar mais sobre essas configurações e ai você pode modificá-las ao seu gosto.

vitor.morales

fiz o que disse e veio os seguintes errors

Mar 19, 2013 7:08:51 PM org.apache.catalina.util.LifecycleBase stop
17626 INFO: The stop() method was called on component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/IPMan2]] after stop() had already been called. The second call will be ignor ed.
17627 Mar 19, 2013 7:08:52 PM org.apache.catalina.startup.HostConfig checkResources
17628 INFO: Undeploying context [/IPMan2]
17629 Mar 19, 2013 7:09:01 PM org.apache.catalina.startup.HostConfig deployWAR
17630 INFO: Deploying web application archive IPMan2.war
17631 19/03/13 19:09:05 WARN org.hibernate.internal.util.xml.DTDEntityResolver:74
17632 HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
17633 Mar 19, 2013 7:09:05 PM org.apache.catalina.core.StandardContext startInternal
17634 SEVERE: Error filterStart
17635 Mar 19, 2013 7:09:05 PM org.apache.catalina.core.StandardContext startInternal
17636 SEVERE: Context [/IPMan2] startup failed due to previous errors
17637 19/03/13 19:09:12 WARN org.hibernate.internal.util.xml.DTDEntityResolver:74
17638 HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
17639 Mar 19, 2013 7:09:12 PM org.apache.catalina.core.StandardContext startInternal
17640 SEVERE: Error filterStart
17641 Mar 19, 2013 7:09:12 PM org.apache.catalina.core.StandardContext startInternal
17642 SEVERE: Context [/IPMan2] startup failed due to previous errors
vitor.morales

alguma idéia do que seja ?

Lucas_Cavalcanti

dá um clean no projeto e no servidor e tenta de novo…

esse log não mostra o que seria o erro…

talvez isso:
17638 HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!

sugere que pode estar dando problemas no mapeamento do hibernate

vitor.morales
log4j.rootLogger=WARN,consoleAppender  
    # Troque o pacote  
    log4j.logger.ccc.cefetmg.ipman=DEBUG,dailyFile  
      
    log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender  
    log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout  
    log4j.appender.consoleAppender.layout.ConversionPattern=%-2d{dd/MM/yy HH:mm:ss} %5p %c:%L%n%m%n  
      
    log4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppender  
    # Troque o nome do arquivo  
    log4j.appender.dailyFile.File=${catalina.home}/logs/ipman2_log.log  
    log4j.appender.dailyFile.DatePattern='.'yyyy-MM-dd  
    log4j.appender.dailyFile.layout=org.apache.log4j.PatternLayout  
    log4j.appender.dailyFile.layout.ConversionPattern=%-2d{dd/MM/yy HH:mm:ss} %5p %c:%L%n%m%n

Algo que possa ta errado ai ?
Já dei um clean e ainda a mesma coisa.
To usando Hibernate 4 … com o plugin lá…algum problema de versão ?

Abraços !

Lucas_Cavalcanti

esse erro não é por causa do log… tem alguma coisa errada no deploy da aplicação…

talvez o web.xml esteja mal formado, ou tenha um dado errado, ou qqer outra coisa do tipo.

vitor.morales
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="IPMan" version="3.0">
  <display-name>IPMan</display-name>
  <context-param>
    <param-name>br.com.caelum.vraptor.packages</param-name>
    <param-value>
        ccc.cefetmg.ipman
   </param-value>
  </context-param>
  <filter>
    <filter-name>vraptor</filter-name>
    <filter-class>br.com.caelum.vraptor.VRaptor</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>vraptor</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>
<!--  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>-->
</web-app>

Há algo errado ai ?

Vou tentar fazer o deploy denovo hoje e copio os erros aqui.

Lucas_Cavalcanti

o cabeçalho do xml tá apontando pra versão 2.5 do servlet:

xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

e pra versão 3.0

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

ao mesmo tempo, por isso que não está subindo.

Se o seu servidor for compatível com servlet 3.0, mude tudo pra 3_0, senão mude tudo pra 2_5

Lucas_Cavalcanti

o cabeçalho do xml tá apontando pra versão 2.5 do servlet:

xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

e pra versão 3.0

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

ao mesmo tempo, por isso que não está subindo.

Se o seu servidor for compatível com servlet 3.0, mude tudo pra 3_0, senão mude tudo pra 2_5

vitor.morales
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="IPMan" version="3.0">
  <display-name>IPMan</display-name>
  <context-param>
    <param-name>br.com.caelum.vraptor.packages</param-name>
    <param-value>
        ccc.cefetmg.ipman
   </param-value>
  </context-param>
  <filter>
    <filter-name>vraptor</filter-name>
    <filter-class>br.com.caelum.vraptor.VRaptor</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>vraptor</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>
<!--  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>-->
</web-app>

No apache ainda o erro

FAIL - Application at context path /IPMan2 could not be started

O deploy vai porém na hora de da um start na aplicação ocorre esse erro

Lucas_Cavalcanti

ainda sobrou um:

version="3.0"

na dúvida, pede pro eclipse gerar o web.xml e altera o que for preciso.

vitor.morales

Apr 02, 2013 4:41:24 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error filterStart
Apr 02, 2013 4:41:24 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/IPMan2] startup failed due to previous errors
02/04/13 16:44:18 WARN org.hibernate.internal.util.xml.DTDEntityResolver:74
HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!

Lucas_Cavalcanti

sugiro que vc regere tanto o web.xml quanto as configs do hibernate… pela mensagem de erro não dá pra saber o que é

vitor.morales

Na verdade … quando eu faço o deploy aparece isso no log

Apr 02, 2013 6:23:56 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error filterStart
Apr 02, 2013 6:23:56 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/IPMan2] startup failed due to previous errors

vitor.morales

Se eu tiro os filtros do web.xml ele faz o deploy ok e starta a aplicação … porém não resolve nenhuma das urls

Lucas_Cavalcanti

ele não dá nenhuma exception se vc coloca o filtro do VRaptor?

vitor.morales

aparece esse SEVERE: Error filterStart com os filtros no web.xml …
Se comento eles ele faz o deploy e já starta a aplicação … porém não abre página nenhuma

Lucas_Cavalcanti

tentou tirar o context-param de packages e deixar só o filtro?

vitor.morales

Parece que tinha alguns erros escondidos aqui e eu consegui achar.
Olha só

SEVERE: Exception starting filter vraptor
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'sessionFactoryCreator': Unsatisfied dependency expressed through constructor argument with index 0 of type [org.hibernate.cfg.Configuration]: : Error creating bean with name 'br.com.caelum.vraptor.plugin.hibernate4.ConfigurationCreator': FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurationCreator': Invocation of init method failed; nested exception is org.hibernate.MappingException: Unable to load class [ ccc.cefetmg.ipman.model.Department] declared in Hibernate configuration <mapping/> entry; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'br.com.caelum.vraptor.plugin.hibernate4.ConfigurationCreator': FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurationCreator': Invocation of init method failed; nested exception is org.hibernate.MappingException: Unable to load class [ ccc.cefetmg.ipman.model.Department] declared in Hibernate configuration <mapping/> entry
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:730)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
	at br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.start(SpringBasedContainer.java:106)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.start(SpringProvider.java:87)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:110)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:103)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4542)
	at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5220)
	at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5215)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:722)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'br.com.caelum.vraptor.plugin.hibernate4.ConfigurationCreator': FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurationCreator': Invocation of init method failed; nested exception is org.hibernate.MappingException: Unable to load class [ ccc.cefetmg.ipman.model.Department] declared in Hibernate configuration <mapping/> entry
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149)
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:109)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1429)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:245)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:844)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:786)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:795)
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:723)
	... 28 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurationCreator': Invocation of init method failed; nested exception is org.hibernate.MappingException: Unable to load class [ ccc.cefetmg.ipman.model.Department] declared in Hibernate configuration <mapping/> entry
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:394)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1413)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:263)
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1083)
	at br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.instanceFor(SpringBasedContainer.java:86)
	at br.com.caelum.vraptor.ioc.spring.ComponentFactoryBean.getObject(ComponentFactoryBean.java:43)
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)
	... 37 more
Caused by: org.hibernate.MappingException: Unable to load class [ ccc.cefetmg.ipman.model.Department] declared in Hibernate configuration <mapping/> entry
	at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2115)
	at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2063)
	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2043)
	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1996)
	at org.hibernate.cfg.Configuration.configure(Configuration.java:1911)
	at org.hibernate.cfg.Configuration.configure(Configuration.java:1890)
	at br.com.caelum.vraptor.plugin.hibernate4.ConfigurationCreator.create(ConfigurationCreator.java:29)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:340)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:293)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:130)
	... 50 more
Caused by: java.lang.ClassNotFoundException: ccc.cefetmg.ipman.model.Department
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:188)
	at org.hibernate.internal.util.ReflectHelper.classForName(ReflectHelper.java:192)
	at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2112)
	... 63 more
Lucas_Cavalcanti

Se vc ler o erro vc consegue ver o que está acontecendo:

Unable to load class [ ccc.cefetmg.ipman.model.Department] declared in Hibernate configuration <mapping/> entry

Caused by: java.lang.ClassNotFoundException: ccc.cefetmg.ipman.model.Department

ou seja, essa classe não existe… deve estar com o nome ou o pacote errado, no mapeamento do hibernate.

vitor.morales

Mas ta perfeito … tanto que localmente eu consigo rodar

Lucas_Cavalcanti

essa classe está no war/jar/ear deployado no servidor?

vitor.morales

Desculpa a ignorância mas é a primeira vez que to tentando fazer isso.

O quer dizer com isso ? Aonde devo olhar ?

Lucas_Cavalcanti

como vc está fazendo o deploy no servidor?

vitor.morales

Navegando em
war/WEB-INF/classes/ccc/cefetmg/ipman/model não tem classe nenhuma ? Que bruxaria é essa? kkk

Lucas_Cavalcanti

Sei lah :wink:

tenta dar um clean no projeto e no servidor

vitor.morales

Apache Tomcat … Numa seção que chama Manager App

vitor.morales

Nada kkkkk

vitor.morales

Cara… eu fiz uma loucura aqui

Eu gerei um .war na mão … daí copie desse war pro war que o netbeans gera as classes do modelo que tavam faltando … ai deu tudo certo … só que to sem acesso ao banco aqui ai ta dando alguns erros.

Mas gostaria de saber pq o netbeans ao construir o projeto e criar o war não ta fazendo isso certo

Lucas_Cavalcanti

mas vc gera um war ou coisa do tipo?

Criado 13 de março de 2013
Ultima resposta 3 de abr. de 2013
Respostas 32
Participantes 3