Problema com filtro

12 respostas
mondor

Olá galera, estou perdendo os cabelos por aqui (: (ok, ainda não está para tanto)

A questão é que volta e meia da uma exception iniciando meu projeto e não consigo resolver isto de jeito nenhum!

Antes segue meu web.xml:
<?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="WebApp_ID" version="3.0">
  <display-name>studyLife</display-name>
  <context-param>
	<param-name>br.com.caelum.vraptor.provider</param-name>
	<param-value>br.com.caelum.vraptor.util.hibernate.HibernateCustomProvider</param-value>
  </context-param>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <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>
</web-app>
Segue log
GRAVE: Exception starting filter vraptor
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactoryCreator': Invocation of init method failed; nested exception is org.hibernate.MappingException: Unable to load class [ br.com.studyLife.modelo.Usuario] 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: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:4562)
	at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5240)
	at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5235)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.hibernate.MappingException: Unable to load class [ br.com.studyLife.modelo.Usuario] declared in Hibernate configuration <mapping/> entry
	at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2342)
	at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2283)
	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2263)
	at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:242)
	at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:71)
	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2216)
	at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:230)
	at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:71)
	at org.hibernate.cfg.Configuration.configure(Configuration.java:2131)
	at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:212)
	at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:71)
	at org.hibernate.cfg.Configuration.configure(Configuration.java:2110)
	at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:206)
	at br.com.caelum.vraptor.util.hibernate.SessionFactoryCreator.create(SessionFactoryCreator.java:43)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	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)
	... 27 more
Caused by: java.lang.ClassNotFoundException: br.com.studyLife.modelo.Usuario
	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(Unknown Source)
	at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:192)
	at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2339)
	... 47 more
Mapeamento no hibernate.cfg.xml:
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">root</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost/studylife</property>
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
		<property name="hibernate.hbm2ddl.auto">update</property>
		<property name="show_sql">true</property>
		<property name="format_sql">true</property>
		
		<mapping class="br.com.studyLife.modelo.Usuario" />
	</session-factory>
</hibernate-configuration>

O eclipse não está apontando erro nenhum no projeto! Não estou entendendo o que pode estar acontecendo...
Antes que me falem que não está encontrando a classe Usuario está sim, pois é de lua as vezes funciona as vezes não! Geralmente se deixo a noite toda rodando no notebook e vou dormir...

Aproveitando o tópico, meu amigo baixou o projeto do svn do nosso servidor, e ao por no tomcat 7 (o mesmo que estou usando) diz que dá erro, pois nao suporta dynamic web 3.00.

Por favor galera, help!

12 Respostas

Lucas_Cavalcanti

dá uma olhada na causa raiz:

Caused by: java.lang.ClassNotFoundException: br.com.studyLife.modelo.Usuario

e na penúltima:

Caused by: org.hibernate.MappingException: Unable to load class [ br.com.studyLife.modelo.Usuario] declared in Hibernate configuration <mapping/>

vc escreveu no nome da classe/pacote errado no hibernate.cfg.xml

mondor

boa noite lucas!
eu me atentei a este fato, mas elas estão iguaizinhas!
tanto que eu falei, as vezes funciona!

Por desencargo, eu copiei da minha classe Usuario:

package br.com.studyLife.modelo;

e colei lá no hibernate.cfg.xml com .Usuario, e nada!

Aliás, tão não estar errado, que segurando o CTRL e clicando em cima eu vou certinho pro meu usuario :frowning:
muito estranho, não?

Lucas_Cavalcanti

então seu projeto não deve estar sendo compilado direito na pasta do servidor…

vc usa eclipse? netbeans?

e só um detalhe: não é parte da convenção usar camelCase nos pacotes… ou studylife ou study.life seria o mais comum em java

mondor

Lucas, pode ser, como podemos arrumar isso? Uso o eclipse! Mesmo dando clean no project, dá no mesmo! to quase reiniciando aqui hehe, dessa vez ta persistindo demais o prob!

Se nada der certo, vou apelar pro refactor do eclipse e mudar o nome do pacote, apesar de achar que não vai ter relação… correto?

Lucas_Cavalcanti

tenta dar um clean no projeto e no servidor, isso força o eclipse a compilar as classes

mondor

Já tinha feito, realizei novamente o clean e nada!
Quer o link do repositório? O:

Lucas_Cavalcanti

se vc apaga o mapping ele sobe tranquilo?

tenta criar outra entidade e mapeá-la

mondor

Lucas, exclui o mapping e subiu normalmente! Apesar de quando tento acessar no navegador, da 404 e o pior: nada no log.
Eu citei para você o fato de o meu amigo ter baixado o projeto e não conseguir subir, pois acusa que o tomcat 7 nao suporte web dynamic 3.00, teria alguma coisa a ver isto? como pode-se configurar?

mondor

Consegui subir!

Criei uma outra entidade e mapeei, subiu normalmente!
A única diferença das duas é que minha classe Usuario, está implementando Serializable…
Tirei o implements e foi! Mas preciso dele também :frowning:

Como podemos resolver isto?

Obs.: Voltei com o implements Serializable e subiu normalmente --’ será que ficou alguma configuração de antes e agora implementando o serializable não diferencia?

Lucas_Cavalcanti

pq vc precisa do Serializable?

mondor

Lembro de quando eu fiz isto, dava algumas exceptions e só consegui resolver colocando serializable no meu UsuarioWeb e Usuario…

@Post @Path("/doLogin") public void login(Usuario usuario) { Usuario carregado = dao.carrega(usuario); String retorno = "false"; if (carregado != null) { retorno="true"; usuarioWeb.login(carregado); } System.out.println("meu retorno: " + retorno); result.use(Results.json()).from(retorno).serialize(); }

Obs.: Voltei com o implements Serializable e subiu normalmente --’ será que ficou alguma configuração de antes e agora implementando o serializable não diferencia?

Lucas_Cavalcanti

bom o serializable geralmente não é necessário, a menos que vc esteja enviando a classe remotamente via EJB ou RMI, ou esteja serializando o objeto via ObjectOutputStream…

tem alguma outra coisa estranha acontecendo na sua aplicação…

Criado 6 de junho de 2011
Ultima resposta 6 de jun. de 2011
Respostas 12
Participantes 2