Erro em persistencia com Hibernate

8 respostas
W

Olá pessoal…Saudações a todos os adoradores do Java.

Sou um apaixonado, porem, iniciante no uso da linguagem Java e me deparei com um problema ao rodar uma aplicação utilizando persitencia com Hibernate. A compilação funcionou perfeitamente mas quando tento executar o programa, não cosigo inserir dados nos JTextField e ao clicar em um JButton, que dispara uma action de Adicionar informações no banco, a operação não é concluida e tenho a seguinte mensagem de saida:

[color=red]Exception in thread “AWT-EventQueue-0” java.lang.NoClassDefFoundError: org/jboss/util/file/ArchiveBrowser$Filter

at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:119)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:60)[/color]

[color=blue]at GUI.Main.persist(Main.java:258 ).

at GUI.Main.adicionaJBActionPerformed(Main.java:215)

at GUI.Main.access$100(Main.java:19)

at GUI.Main$2.actionPerformed(Main.java:76)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318 ).

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

at java.awt.Component.processMouseEvent(Component.java:6038 ).

at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)

at java.awt.Component.processEvent(Component.java:5803)

at java.awt.Container.processEvent(Container.java:2058 )

at java.awt.Component.dispatchEventImpl(Component.java:4410)

at java.awt.Container.dispatchEventImpl(Container.java:2116)

at java.awt.Component.dispatchEvent(Component.java:4240)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)

at java.awt.Container.dispatchEventImpl(Container.java:2102)

at java.awt.Window.dispatchEventImpl(Window.java:2429)

at java.awt.Component.dispatchEvent(Component.java:4240)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168 )

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)[/color]

Alguém pode me ajudar a identificar o motivo do erro? Desde já: Muito Obrigado.

A propósito: Estou utilizando o Netbeans 6.0.1.

8 Respostas

fnandos

Olá, vc poderia postar seu mapeamento e o código que executa a ação, no chutometro fica difícil, vc sabe né.

victor.godinho

NoClassDefFoundError = Não achou a classe, filhote.

Possíveis problemas: Escreveu errado o nome da classe e está utilizando Reflection (para não dar erro na compilação e sim em runtime), ou a classe não existe ( de certa forma o de cima também é esse ).

Viu a stack? Tá dando erro no Hibernate! So… Tá faltando jar maluko!

Acho que deve ser esse: jboss-archive-browsing

Falows!

Weslley

[color=blue]me fala quais .jar q vc colocou em teu classpath…

Sds…[/color]

W

Olá pessoal…

Obrigado pelo pronto atendimento. Estou enviando abaixo, fragmentos do codigo com o evento que dispara a action de inserção de dados no banco (destacado em vermelh). Antes porém, fiz um “Stepinto” e tive o seguinte resultado.

Ouvindo em 1193
Não foi possível enviar o ponto de interrupção LineBreakpoint Container.java : 252, razão: O ponto de interrupção pertence à raiz do código-fonte desabilitado ‘D:\ProgramFiles\Java\jdk1.6.0_01\src.zip’. Consulte Janela/Depuração/Códigos-fonte.
Inválido LineBreakpoint Container.java : 252
Executando programa do usuário
Thread main parada em Main.java:230.

Quanto às bibliotecas, estão carregadas as seguintes: As spring-framework-2.5 - antlr-2.7, asm-2.2.3, asm-commons-2.2.3, asm-util-2.2.3,
aspectjrt, aspectjweaver, cglib-nodep-2.1, commons-beanutils, commons-collections, commons-lang, commonslogging, dom4j-1.6.1, ehcache-1.2.4, hibernate3, hibernate-annotations, hibernate-commons-annotations, hibernate-entitymanager, hsqldb, jstl, jta, log4j, persistence, spring, spring-webmvc, standard,beansbinding, além da JDK 1.6 (padrão)

[color=darkblue]package GUI;

import Lib.DataBase.ListaTarefa;

import Lib.GUI.TarefaTabela;

import javax.persistence.EntityManager;

import javax.persistence.EntityManagerFactory;

import javax.swing.JOptionPane;

public class Main extends javax.swing.JFrame {

/** Creates new form Main */
public Main() {
    initComponents();
}[/color]

[color=red] private void adicionaJBActionPerformed(java.awt.event.ActionEvent evt) {
ListaTarefa listaTarefa = new ListaTarefa();

listaTarefa.setId(identificadorTF.getText());
    listaTarefa.setTitulo(tituloTF.getText());
    listaTarefa.setReponsavel(reponsavelTF.getText());
    listaTarefa.setDescricao(descricaoTF.getText());
    
    persist(listaTarefa);
}[/color]
[color=darkblue]    private void AtualizaTabelaActionPerformed(java.awt.event.ActionEvent evt) {

tarefaTabela.setModel(new TarefaTabela());

}
public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new Main().setVisible(true);

}

});

}
// Variables declaration - do not modify                     
private javax.swing.JButton AtualizaTabela;
private javax.swing.JButton adicionaJB;
private javax.swing.JPanel adicionarTarefa;
private javax.swing.JLabel descricaoJL;
private javax.swing.JTextField descricaoTF;
private javax.swing.JLabel identificadorJL;
private javax.swing.JTextField identificadorTF;
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTabbedPane jTabbedPane1;
private javax.swing.JTextField reponsavelTF;
private javax.swing.JLabel responsavelJL;
private javax.swing.JTable tarefaTabela;
private javax.swing.JLabel tituloJL;
private javax.swing.JTextField tituloTF;
private javax.swing.JPanel visualizaTarefa;
// End of variables declaration                   

public void persist(Object object) {
    
    EntityManagerFactory emf = javax.persistence.Persistence.createEntityManagerFactory("ListaTarefaPU");
    EntityManager em = emf.createEntityManager();
    em.getTransaction().begin();
    try {
        em.persist(object);
        em.getTransaction().commit();
        JOptionPane.showMessageDialog(this,"Tarefa Adicionada.");
        
    } catch (Exception e) {
        e.printStackTrace();
        em.getTransaction().rollback();
    } finally {
        em.close();
    }
}

}
[/color]

MAPEAMENTO:

[color=darkred]@Entity

@Table(name = “LISTA_TAREFA”)

@NamedQueries({

@NamedQuery(name = “ListaTarefa.findById”, query = “SELECT l FROM ListaTarefa l WHERE <a href="http://l.id">l.id</a> = :id”),

@NamedQuery(name = “ListaTarefa.findByTitulo”, query = “SELECT l FROM ListaTarefa l WHERE l.titulo = :titulo”),

@NamedQuery(name = “ListaTarefa.findByReponsavel”, query = “SELECT l FROM ListaTarefa l WHERE l.reponsavel = :reponsavel”),

@NamedQuery(name = “ListaTarefa.findByDescricao”, query = “SELECT l FROM ListaTarefa l WHERE l.descricao = :descricao”)

})
public class ListaTarefa implements Serializable {

private static final long serialVersionUID = 1L;

@Id

@Column(name = ID, nullable = false)

private String id;

@Column(name = TITULO)

private String titulo;

@Column(name = REPONSAVEL)

private String reponsavel;

@Column(name = DESCRICAO)

private String descricao;[/color][b]
renatocustodio

edita seu código e coloca ele entre as tags code.

Como já foi dito o problema não deve ser no seu código, deve estar faltando incluir algum jar. É exatamente isso que diz aqui: java.lang.NoClassDefFoundError: org/jboss/util/file/ArchiveBrowser$Filter

W

renatocustodio:
edita seu código e coloca ele entre as tags code.

Como já foi dito o problema não deve ser no seu código, deve estar faltando incluir algum jar. É exatamente isso que diz aqui: java.lang.NoClassDefFoundError: org/jboss/util/file/ArchiveBrowser$Filter

L

Esse erro que está dando, tá dizendo que vc declarou algum bean para o hibernate que não existe, talvez tenha declarado o nome da classe errado ou algo assim … Dá uma conferida nos nomes das classes mapeadas no annotation

W
Criado 4 de agosto de 2008
Ultima resposta 5 de ago. de 2008
Respostas 8
Participantes 6