Teste da apostila da caelum Vraptor deu erro?

9 respostas
E

Tava fazendo o primeiro exemplo da apostila pagina 20. mostrou este erro:

Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/DocumentException
	at br.com.caelum.goodbuy.modelo.TesteDeSessao.main(TesteDeSessao.java:11)
Caused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	... 1 more

o código e este:

package br.com.caelum.goodbuy.modelo;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;


public class TesteDeSessao {
	public static void main(String [] args) {
		AnnotationConfiguration configuration = new AnnotationConfiguration();
		configuration.configure();
		
		SessionFactory factory = configuration.buildSessionFactory();
		Session senssion = factory.openSession();
		
		Produto produto = new Produto();
		produto.setNome("Prateleira");
		produto.setDescricao("Uma prateleira para colocar livros");
		produto.setPreco(35.90);
		
		Transaction tx = senssion.beginTransaction();
		senssion.save(produto);
		tx.commit();
	}

}

classe Produto é:

package br.com.caelum.goodbuy.modelo;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Produto {
	
	@Id @GeneratedValue
	private Long id;
	private String nome;
	private String descricao;
	private Double preco;
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public Double getPreco() {
		return preco;
	}
	public void setPreco(Double preco) {
		this.preco = preco;
	}
	

}

o hibernate.cfg.xml esta assim:

<!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">azx123456</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost/fj28</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.caelum.goodbuy.modelo.Produto" />
		
	</session-factory>

	
</hibernate-configuration>

Obrigado desde já.

9 Respostas

Victor_Neves

ele nao achou a classe org.dom4j.DocumentException, voce precisa da lib que contenha esta classe.
eu nao sei qual é,teria que procurar, mas certifique-se se que voce esta com a lib do Log4j no seu projeto.
se nao estiver com essa lib, adicione-a.

E

Obrigado pela dica. Mas quando eu coloquei o “dom4j” [u]na /lib mostrou este erro:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
	at org.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:223)
	at org.slf4j.LoggerFactory.bind(LoggerFactory.java:120)
	at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
	at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:269)
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242)
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:255)
	at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:165)
	at br.com.caelum.goodbuy.modelo.TesteDeSessao.main(TesteDeSessao.java:11)
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	... 8 more

mesmo assim agradeço a sua participação.

Lucas_Cavalcanti

você colocou todos os jars da pasta lib/mandatory do zip do vraptor no seu WEB-INF/lib?

sempre que der um NoClassDefFound tenta procurar nesse site a classe:
jarfinder.com

os jars que o vraptor depende estão ou no lib/mandatory ou no lib/optional do zip do vraptor

G

[quote=eu.eu]Obrigado pela dica. Mas quando eu coloquei o “dom4j” [u]na /lib mostrou este erro:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.[/quote]

Se você tivesse lido a mensagem de erro saberia como resolver. De qualquer forma eu já comentei sobre como resolver nesses dois tópicos: http://www.guj.com.br/posts/preList/139540/751117.java#751117 e http://www.guj.com.br/posts/preList/139540/751224.java#751224

Abraços

E

Obrigado pela ajuda.

Coloquei os seguinte jars na /lib:

antlr-2.7.6.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
hibernate3.jar
javassist-3.9.0.GA.jar
jta-1.1.jar
mysql-connector-java-5.1.12-bin.jar
slf4j-api-1.5.8.jar
slf4j-simple-1.5.8-sources.jar
slf4j-simple-1.5.8.jar

mais aconteceu o seguinte erro que tambem não consigo resolver!!!:

2 [main] INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.5.1-Final
21 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.5.1-Final
23 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
27 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
32 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
180 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final
188 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
188 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
288 [main] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null
301 [main] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
358 [main] INFO org.hibernate.cfg.AnnotationConfiguration - Hibernate Validator not found: ignoring
364 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
364 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20
364 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
373 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost/fj28
373 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=root, password=****}
650 [main] INFO org.hibernate.cfg.SettingsFactory - RDBMS: MySQL, version: 5.0.18-nt-log
650 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-5.1.12 ( Revision: ${bzr.revision-id} )
677 [main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect
718 [main] INFO org.hibernate.engine.jdbc.JdbcSupportLoader - Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4
720 [main] INFO org.hibernate.transaction.TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions)
721 [main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
721 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled
721 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled
721 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15
721 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled
722 [main] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled
722 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): enabled
722 [main] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto
723 [main] INFO org.hibernate.cfg.SettingsFactory - Maximum outer join fetch depth: 2
723 [main] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1
723 [main] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled
723 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled
723 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled
724 [main] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
725 [main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory
726 [main] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}
726 [main] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled
726 [main] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled
726 [main] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled
726 [main] INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory
726 [main] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled
726 [main] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled
731 [main] INFO org.hibernate.cfg.SettingsFactory - Echoing all SQL to stdout
732 [main] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled
732 [main] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled
732 [main] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo
732 [main] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled
732 [main] INFO org.hibernate.cfg.SettingsFactory - Check Nullability in Core (should be disabled when Bean Validation is on): enabled
772 [main] INFO org.hibernate.impl.SessionFactoryImpl - building session factory
783 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
791 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - Running hbm2ddl schema update
791 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - fetching database metadata
792 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - updating schema
795 [main] INFO org.hibernate.tool.hbm2ddl.SchemaUpdate - schema update complete
Exception in thread "main" org.hibernate.MappingException: Unknown entity: br.com.caelum.goodbuy.modelo.Produto
	at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:701)
	at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1475)
	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
	at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
	at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
	at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:705)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:693)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:689)
	at br.com.caelum.goodbuy.modelo.TesteDeSessao.main(TesteDeSessao.java:23)
Lucas_Cavalcanti
Exception in thread "main"  org.hibernate.MappingException: Unknown entity: br.com.caelum.goodbuy.modelo.Produto

isso significa que a classe br.com.caelum.goodbuy.modelo.Produto ou não existe ou não tá anotada com @Entity

E

O erro começa aparte desta linhas [color=blue]“main”[/color]???

As linhas a cima da linha é normal aparecer??? não é erro???
[color=blue]“main”[/color]
Desculpa as perguntas pois só tem conhecimento em JSP/Servlet e decidir adota um MVC e gostei do vRaptor.

Exception in thread "main org.hibernate.MappingException: Desconhecido entidade: br.com.caelum.goodbuy.modelo.Produto
em org.hibernate.impl.SessionFactoryImpl.getEntityPersister (SessionFactoryImpl.java: 701)
em org.hibernate.impl.SessionImpl.getEntityPersister (SessionImpl.java: 1475)
em org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId (AbstractSaveEventListener.java: 121)
em org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId (DefaultSaveOrUpdateEventListener.java: 210)
em org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId (DefaultSaveEventListener.java: 56)
em org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient (DefaultSaveOrUpdateEventListener.java: 195)
em org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate (DefaultSaveEventListener.java: 50)
em org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate (DefaultSaveOrUpdateEventListener.java: 93)
em org.hibernate.impl.SessionImpl.fireSave (SessionImpl.java: 705)
em org.hibernate.impl.SessionImpl.save (SessionImpl.java: 693)
em org.hibernate.impl.SessionImpl.save (SessionImpl.java: 689)
em br.com.caelum.goodbuy.modelo.TesteDeSessao.main (TesteDeSessao.java: 23

Obrigado pela atenção.

Lucas_Cavalcanti

o que tá em cima é só log de debug, não tem problema aparecer…

erros são só quando aparece uma Exception e uma stacktrace depois

E

[b]Obrigado Lucas… neste momento estou trabalhando mas quando chegar em casa vou corrige este erro.

obrigado pela atenção.[/b]

Criado 9 de maio de 2010
Ultima resposta 10 de mai. de 2010
Respostas 9
Participantes 4