Error java.lang.NoClassDefFoundError

0

I'm stuck on a project that should be a "bank" with a CRUD account and transaction. I have to use Oracle database because of the facul. This error happens when giving an insert in the database.

Stacktrace:

jun 11, 2017 4:21:58 PM com.sun.faces.lifecycle.InvokeApplicationPhase execute
ADVERTÊNCIA: #{contaMB.salvar}: java.lang.NoClassDefFoundError: org/hibernate/service/jndi/JndiException
javax.faces.FacesException: #{contaMB.salvar}: java.lang.NoClassDefFoundError: org/hibernate/service/jndi/JndiException
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
    at javax.faces.component.UICommand.broadcast(UICommand.java:315)
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1434)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)
Caused by: javax.faces.el.EvaluationException: java.lang.NoClassDefFoundError: org/hibernate/service/jndi/JndiException
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
    ... 29 more
Caused by: java.lang.NoClassDefFoundError: org/hibernate/service/jndi/JndiException
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.jboss.logging.Logger$1.run(Logger.java:2252)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.jboss.logging.Logger.getMessageLogger(Logger.java:2227)
    at org.jboss.logging.Logger.getMessageLogger(Logger.java:2214)
    at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:142)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:55)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
    at tois.DAO.ContaDAO.adicionar(ContaDAO.java:15)
    at tois.control.ContaMB.salvar(ContaMB.java:41)
    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.apache.el.parser.AstValue.invoke(AstValue.java:247)
    at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)
    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
    ... 30 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.service.jndi.JndiException
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
    ... 50 more

ManagedBean:

package tois.control;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import tois.DAO.ContaDAO;
import tois.entity.Conta;

@SessionScoped
@ManagedBean
public class ContaMB {

    private String auxUser = "";
    private String auxSenha = "";

    private Conta curConta = new Conta();


    public void setConta(Conta conta) {
        this.curConta = conta;
    }   

    public Conta getConta() {
        return curConta;
    }

    public String login() {
        String pagina = "login";
        curConta = ContaDAO.validar(auxUser, auxSenha);
        if (curConta != null) {
            pagina = "conta?faces-redirect=true";
        } else {
            curConta = new Conta();
            pagina = "login";
        }

        return pagina;
    }

    public String salvar(){
        ContaDAO.adicionar(curConta);
        return "login";
    }

    public String sair(){
        curConta = null;
        return "login";

    }

    public String getAuxUser() {
        return auxUser;
    }

    public void setAuxUser(String auxUser) {
        this.auxUser = auxUser;
    }

    public String getAuxSenha() {
        return auxSenha;
    }

    public void setAuxSenha(String auxSenha) {
        this.auxSenha = auxSenha;
    }

    public Conta getCurConta() {
        return curConta;
    }

    public void setCurConta(Conta curConta) {
        this.curConta = curConta;
    }


}

XHTML:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">
<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>Cadastro - Banco Tois</title>
</h:head>
<h:body>
    <h1>Cadastro de Conta</h1>
    <p:separator responsive="true" />
    <h:form>

    <p:panelGrid columns="2" responsive="true">

        <p:outputLabel for="inputAgencia" value="Agencia:" />
        <p:inputText id="inputAgencia" value="#{contaMB.curConta.agencia}" readonly="true" />

        <p:outputLabel for="inputConta" value="Conta:" indicateRequired="true" />
        <p:inputText id="inputConta" value="#{contaMB.curConta.conta}" readonly="true" />

    </p:panelGrid>

    <p:separator responsive="true" />

    <p:panelGrid columns="3" responsive="true">

        <p:outputLabel for="inputNome" value="Nome:" />
        <p:inputText id="inputNome" value="#{contaMB.curConta.nome}" />
        <p:message for="inputNome" />

        <p:outputLabel for="inputCPF" value="CPF:" />
        <p:inputMask id="inputCPF" mask="999.999.999-99" value="#{contaMB.curConta.CPF}" />
        <p:message for="inputCPF" />

        <p:outputLabel for="inputRG" value="RG:" />
        <p:inputMask id="inputRG" mask="99.999.999-9" value="#{contaMB.curConta.RG}" />
        <p:message for="inputRG" />

    </p:panelGrid>

    <p:separator responsive="true" />

    <p:outputLabel value="Empregado:" />
    <p:selectOneRadio id="inputEmprego" value="#{contaMB.curConta.emprego}">
            <f:selectItem itemValue="S" itemLabel="Sim" />
            <f:selectItem itemValue="N" itemLabel="Não" />
        </p:selectOneRadio>
        <p:message for="inputTipoConta" />

        <p:outputLabel value="Tipo Conta:" />
        <p:selectOneRadio id="inputTipoConta" value="#{contaMB.curConta.tipoConta}">
            <f:selectItem itemValue="Conta Corrente" itemLabel="Conta Corrente" />
            <f:selectItem itemValue="Conta Poupança" itemLabel="Conta Poupança" />
        </p:selectOneRadio>
        <p:message for="inputTipoConta" />

    <p:separator responsive="true" />


    <p:panelGrid columns="3" responsive="true">

        <p:outputLabel for="inputSenha" value="Senha" />
            <p:password id="inputSenha" value="#{contaMB.curConta.senha}"
                feedback="true" inline="true" promptLabel="Digite sua senha"
                weakLabel="Senha fraca" goodLabel="Senha média"
                strongLabel="Senha forte" />
            <p:message for="inputSenha" />
        </p:panelGrid>

    <p:separator responsive="true" />

    <p:commandButton value="Salvar" action="#{contaMB.salvar}" update="@form" />
    <p:commandButton value="Cancelar" action="Login" immediate="true" />


    </h:form>
</h:body>
</html>
    
asked by anonymous 11.06.2017 / 21:41

2 answers

0

If you are using hibernate-core & hibernate-entitymanager in your pom.xml, they must have the same version.

   <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.1.9.Final</version>
    </dependency>


    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.1.9.Final</version>
    </dependency>
    
11.06.2017 / 23:55
-1

If you are not using maven, add the hibernate-core and hibernate-entitymanager jar of the same version in your project.

link

link

    
11.06.2017 / 23:59