Ajuda com Tratamento de excessão

2 respostas
F

estou rodando um aplicativo no tomcat e me fornece a seguinte exception..

exception

javax.servlet.ServletException: Servlet execution threw an exception

root cause

java.lang.NoClassDefFoundError: javax/persistence/NonUniqueResultException
br.empresa.web.Procedimentos.(Procedimentos.java:12)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:494)
java.lang.Class.newInstance0(Class.java:350)
java.lang.Class.newInstance(Class.java:303)
com.sun.faces.config.ManagedBeanFactoryImpl.newInstance(ManagedBeanFactoryImpl.java:275)
com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:551)
com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:82)
javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:61)
org.apache.el.parser.AstValue.getValue(AstValue.java:103)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
javax.faces.component.UIData.getValue(UIData.java:582)
javax.faces.component.UIData.getDataModel(UIData.java:1063)
javax.faces.component.UIData.setRowIndex(UIData.java:417)
com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:85)
javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:785)
javax.faces.component.UIData.encodeBegin(UIData.java:879)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:884)
javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:809)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:244)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:174)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)

classe Procedimentos
package br.empresa.web;

import java.util.List;

import br.empresa.Funcionario;
import br.empresa.FuncionarioNaoEncontradoException;
import br.empresa.FuncionarioNaoUnicoException;
import br.empresa.FuncionarioServiceImpl;

public class Procedimentos{
	
	FuncionarioServiceImpl servico = new FuncionarioServiceImpl();
		
	public Procedimentos(){
		System.out.println("\npassou pelo construtor");
		
	}
	
	public List<Funcionario> getListaFuncionario()
			throws FuncionarioNaoUnicoException,
			FuncionarioNaoEncontradoException {
	   System.out.println("\nacessou o metodo getListaFuncionario");
	  
	   System.out.println("chamando a funcao carregarTudoOrdenadoNome");
	   return this.servico.carregarTudoOrdenadoNome();
		
	}
	
	public void excluirFuncionario(Funcionario funcionario) {
		System.out.println("\nacessou o metodo excluirFuncionario");

		this.servico.excluir(funcionario);
		System.out.println("exclusao efetuada!");
		
	}
	
	public void inserirFuncionario(Funcionario funcionario){
		System.out.println("\nacessou o metodo inserirFUncionario");
		
		this.servico.inserir(funcionario);
		System.out.println("insercao efetuado!");
	}
}
classe FuncionarioServiceImpl
package br.empresa;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.NonUniqueResultException;
import javax.persistence.Query;

import br.empresa.resources.HibernateEntityManagerFactory;

public class FuncionarioServiceImpl implements FuncionarioService {

	private EntityManager em = HibernateEntityManagerFactory
			.getEntityManagerFactory().createEntityManager();
	
	public FuncionarioServiceImpl(){
		System.out.println("\nacessou o construtor da classe");
	}

	public Funcionario buscaFuncionarioPorNome(String nome)
	  .....
	}

	@SuppressWarnings("unchecked")
	public List<Funcionario> carregarTudoOrdenadoNome()
			throws FuncionarioNaoEncontradoException,
			FuncionarioNaoUnicoException{
		System.out.println("\nacessou o metodo carregarTudoOrdenadoNome");
	    
		System.out.println("criando um novo funcionario!");
		List<Funcionario> funcionario = new ArrayList<Funcionario>();
		
		try{
			System.out.println("chamando o select da classe funcionario");
     		Query query = em.createQuery("Select e from Funcionario e");
    		funcionario = query.getResultList();
		}catch (NoResultException e) {
			throw new FuncionarioNaoEncontradoException();
        }catch(NonUniqueResultException e){
        	throw new FuncionarioNaoUnicoException();
        }
		return funcionario;
	}

	public void excluir(Funcionario funcionario) {
          ...
	}

	public void gravar(Funcionario funcionario) {
          ...
	}
	
	public void inserir(Funcionario funcionario) {
          .....
	}
}

2 Respostas

Fox_McCloud

Fernanda de Souza:
estou rodando um aplicativo no tomcat e me fornece a seguinte exception…

java.lang.NoClassDefFoundError: javax/persistence/NonUniqueResultException


A sua exceção está com cara de problema de classpath…

Todos os jars requeridos estão presentes e corretamente identificados do classpath?

F

Obrigada pela dica, estava certinho!
:slight_smile:

Criado 14 de julho de 2008
Ultima resposta 14 de jul. de 2008
Respostas 2
Participantes 2