【问题标题】:Error java.lang.InstantiationException错误 java.lang.InstantiationException
【发布时间】:2014-06-23 08:40:27
【问题描述】:

我正在尝试使用 glassfish JSF 和 JPA 创建一个项目,但我遇到了 persistence.xml 文件中的持久性单元的问题。

错误如下:

本地主机上的 GlassFish 3.1

2014-05-06T12:47:52.326-0300|信息:初始化 Mojarra 2.1.6 (SNAPSHOT 20111206)上下文'/K19-Integracao-JSF-JPA' 2014-05-06T12:47:52.649-0300|严重: WebModule[/K19-Integracao-JSF-JPA]PWC1270:异常启动过滤器 br.com.k19.filters.JPAFilter java.lang.InstantiationException 在 org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:124) 在 org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4685) 在 org.apache.catalina.core.StandardContext.start(StandardContext.java:5377) 在 com.sun.enterprise.web.WebModule.start(WebModule.java:498) 在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:917) 在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:901) 在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:733) 在 com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2018) 在 com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1669) 在 com.sun.enterprise.web.WebApplication.start(WebApplication.java:109) 在 org.glassfish.internal.data.EngineRef.start(EngineRef.java:130) 在 org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269) 在 org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:301) 在 com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:461) 在 com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240) 在 org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259) 在 com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461) 在 com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212) 在 com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179) 在 com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117) 在 com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354) 在 com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) 在 com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849) 在 com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746) 在 com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045) 在 com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228) 在 com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 在 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 在 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 在 com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 在 com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 在 com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 在 com.sun.grizzly.ContextTask.run(ContextTask.java:71) 在 com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 在 com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 在 java.lang.Thread.run(Thread.java:744) 引起: javax.persistence.PersistenceException:没有持久性提供程序 EntityManager 命名为 k19pu,位于 javax.persistence.Persistence.createEntityManagerFactory(未知 来源)在 javax.persistence.Persistence.createEntityManagerFactory(未知 来源)在 br.com.k19.filters.JPAFilter.init(JPAFilter.java:57) 在 org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:264) 在 org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:120) ... 41 更多

2014-05-06T12:47:52.662-0300|信息:WEB0671:加载应用程序 [K19-Integracao-JSF-JPA] 在 [/K19-Integracao-JSF-JPA] 2014-05-06T12:47:52.693-0300|信息:K19-Integracao-JSF-JPA 是 在 774 毫秒内成功部署。 2014-05-06T12:47:53.049-0300|严重:渲染错误 查看[/carros.xhtml] javax.el.E​​LException: /carros.xhtml @24,58 渲染="#{not empty carroBean.carros}": java.lang.NullPointerException 在 com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114) 在 javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) 在 javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:413) 在 javax.faces.component.UIComponent.encodeAll(UIComponent.java:1751) 在 javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760) 在 javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760) 在 com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402) 在 com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131) 在 com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121) 在 com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 在 com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) 在 javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) 在 org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 在 org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) 在 org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) 在 org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) 在 com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) 在 com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) 在 com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849) 在 com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746) 在 com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045) 在 com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228) 在 com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 在 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 在 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 在 com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 在 com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 在 com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 在 com.sun.grizzly.ContextTask.run(ContextTask.java:71) 在 com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 在 com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 在 java.lang.Thread.run(Thread.java:744) 引起: java.lang.NullPointerException 在 br.com.k19.modelo.CarroRepository.buscaTodos(CarroRepository.java:21) 在 br.com.k19.controle.CarroBean.getCarros(CarroBean.java:30) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 javax.el.BeanELResolver.getValue(BeanELResolver.java:363) 在 com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) 在 com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203) 在 com.sun.el.parser.AstValue.getValue(AstValue.java:138) 在 com.sun.el.parser.AstValue.getValue(AstValue.java:183) 在 com.sun.el.parser.AstEmpty.getValue(AstEmpty.java:66) 在 com.sun.el.parser.AstNot.getValue(AstNot.java:63) 在 com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:224) 在 com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109) ... 35 更多

2014-05-06T12:47:53.053-0300|警告:StandardWrapperValve [Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet throws 异常 java.lang.NullPointerException 在 br.com.k19.modelo.CarroRepository.buscaTodos(CarroRepository.java:21) 在 br.com.k19.controle.CarroBean.getCarros(CarroBean.java:30) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 javax.el.BeanELResolver.getValue(BeanELResolver.java:363) 在 com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) 在 com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203) 在 com.sun.el.parser.AstValue.getValue(AstValue.java:138) 在 com.sun.el.parser.AstValue.getValue(AstValue.java:183) 在 com.sun.el.parser.AstEmpty.getValue(AstEmpty.java:66) 在 com.sun.el.parser.AstNot.getValue(AstNot.java:63) 在 com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:224) 在 com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109) 在 javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) 在 javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:413) 在 javax.faces.component.UIComponent.encodeAll(UIComponent.java:1751) 在 javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760) 在 javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760) 在 com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402) 在 com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131) 在 com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121) 在 com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 在 com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) 在 javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) 在 org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 在 org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) 在 org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) 在 org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) 在 com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) 在 com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) 在 com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849) 在 com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746) 在 com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045) 在 com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228) 在 com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 在 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 在 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 在 com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 在 com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 在 com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 在 com.sun.grizzly.ContextTask.run(ContextTask.java:71) 在 com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 在 com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 在 java.lang.Thread.run(Thread.java:744)


而我使用的类如下:

package br.com.k19.modelo;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

public class CarroRepository {

    private EntityManager manager;

    public CarroRepository(EntityManager manager) {
        this.manager = manager;
    }

    public void adiciona(Carro carro) {
        this.manager.persist(carro);
    }

    public  List<Carro> buscaTodos() {
        Query query = this.manager.createQuery("select x from Carro x");
        return query.getResultList();
    }
}

package br.com.k19.modelo;

import java.io.Serializable;

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

@Entity
public class Carro implements Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 4209908627808946183L;

    @Id @GeneratedValue
    private Long id;
    private String marca;
    private String modelo;

    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getMarca() {
        return marca;
    }
    public void setMarca(String marca) {
        this.marca = marca;
    }
    public String getModelo() {
        return modelo;
    }
    public void setModelo(String modelo) {
        this.modelo = modelo;
    }
    public static long getSerialversionuid() {
        return serialVersionUID;
    }   
}

package br.com.k19.filters;

import java.io.IOException;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;


@WebFilter(servletNames={"Faces Servlet"})
public class JPAFilter implements Filter {

    private EntityManagerFactory factory;

    @Override
    public void destroy() {

        this.factory.close();
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {

        // Chegada
        EntityManager manager = factory.createEntityManager();
        request.setAttribute("EntityManager", manager);
        manager.getTransaction().begin();
        // Chegada

        // Faces Servelet
        chain.doFilter(request, response);
        // Faces Servelet

        // Saída
        try {
            manager.getTransaction().commit();
        } catch(Exception e) {
            manager.getTransaction().rollback();
        } finally {
            manager.close();
        }
        // Saída

    }

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

        this.factory = Persistence.createEntityManagerFactory("K19-PU");
    }
}

package br.com.k19.controle;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import javax.servlet.http.HttpServletRequest;

import br.com.k19.modelo.Carro;
import br.com.k19.modelo.CarroRepository;

@ManagedBean
public class CarroBean {

    private Carro carro = new Carro();

    public void adicionaCarro() {
        EntityManager manager = this.getEntityManager();
        CarroRepository repository = new CarroRepository(manager);

        repository.adiciona(carro);
        carro = new Carro();
    }

    public List<Carro> getCarros() {
        EntityManager manager = this.getEntityManager();
        CarroRepository repository = new CarroRepository(manager);
        return repository.buscaTodos();
    }

    private EntityManager getEntityManager() {

        FacesContext fc = FacesContext.getCurrentInstance();
        ExternalContext ec = fc.getExternalContext();
        HttpServletRequest request = (HttpServletRequest) ec.getRequest();
        EntityManager manager = (EntityManager) request.getAttribute("EntityManager");

        return manager;
    }

    public Carro getCarro() {
        return carro;
    }

    public void setCarro(Carro carro) {
        this.carro = carro;
    }
}

还有carro.xhtml文件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.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:ui="http://java.sun.com/jsf/facelets"> 

<h:head>
    <title>K19 treinamentos</title>
</h:head> 
<h:body> 
    <h:form>
        <h:panelGrid columns="2">

            <h:outputLabel value="Marca: " for="campo-marca" />
            <h:inputText value="#{carroBean.carro.marca}" id="campo-marca" />

            <h:outputLabel value="Modelo: " for="campo-modelo" />
            <h:inputText value="#{carroBean.carro.modelo}" id="campo-modelo" />

            <h:commandButton action="#{carroBean.adicionaCarro}" value="Adicionar" />
        </h:panelGrid>
    </h:form>

    <h:panelGroup rendered="#{not empty carroBean.carros}" >
        <h1>Lista de Carros</h1>

        <ul>
            <ui:repeat value="#{carroBean.carros}" var="carro">
                <li> <h:outputText value="#{carro.marca} #{carro.modelo}" /> </li>
            </ui:repeat>
        </ul>
    </h:panelGroup>
</h:body> 
</html>

我的 persistence.xml 如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<persistence version="2.0"
    xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
    http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

    <persistence-unit name="K19-PU" transaction-type="RESOURCE_LOCAL">

        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
            <property name="hibernate.hbm2ddl.auto" value="create" />
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="admin" />
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/K19DB"/>
        </properties>
    </persistence-unit>
</persistence>

我在这个文件夹中的 persistence.xml:~/workspace/K19-Integracao-JSF-JPA/src/META-INF/persistence.xml

我把mysql连接器jar放到glassfish目录下: /opt/glassfish3/glassfish/lib/mysql-connector-java-5.1.30-bin.jar

很抱歉发了这么多,是不是我已经被这个错误抓狂了。

我已经在网上搜索了很多,无法解决问题,请有人帮助我吗?

【问题讨论】:

  • 代码的某些部分有葡萄牙语,但我认为这与你无关。

标签: java jsf jpa persistence.xml


【解决方案1】:

我认为应该始终查看异常的根本原因。你的情况

Caused by: javax.persistence.PersistenceException: 
No Persistence provider for EntityManager named k19pu at javax.persistence.Persistence.createEntityManagerFactory 

您的persistence.xml 无效,这就是无法创建EntityManagerFactory 的原因。

因此,您还可以通过 CarroRepository#buscaTodos 方法获得 NLP

Caused by: java.lang.NullPointerException at br.com.k19.modelo.CarroRepository.buscaTodos

所以请更正您的 Persistence.xml 并确保相同的 PU。希望这能解决你的问题

【讨论】:

  • ... @Override public void init(FilterConfig filterConfig) throws ServletException { this.factory = Persistence.createEntityManagerFactory( “K19-PU”); ...persistence.xml 中的 PU 是我在 JPAFilter 类中使用的,无论如何都不起作用,因为昨天我滚动谷歌寻找解决方案!在 MySql 中不生成任何表是 NullPointerException 发生的原因,但我不知道为什么它不生成表!
  • 在 NullPointerException 之前,您将在 br.com.k19.filters.JPAFilter.init(JPAFilter.java:57) 处获得 EntityManager 的 No Persistence 提供程序
  • 您是否添加了 hibernate-entitymanager-3.4.0-GA.jar 和核心,因为 NetBean 使用 EclipseLink
  • 是的!我知道,但不知道为什么! mysql jar 位于 Glassfish lib 文件夹中。
  • @Patterson Silva 你有两个来自 eclipselinks jar 的 javax.persistence.* 包和其他来自休眠的包,所以请从类路径中删除 eclipselink.jar
【解决方案2】:

问题来了:

2014-05-06T12:47:53.049-0300|严重:错误渲染视图[/carros.xhtml] javax.el.E​​LException: /carros.xhtml @24,58 render="#{not empty carroBean.carros }": java.lang.NullPointerException

...

原因:br.com.k19.modelo.CarroRepository.buscaTodos(CarroRepository.java:21) 的 java.lang.NullPointerException br.com.k19.controle.CarroBean.getCarros(CarroBean.java:30)

直到CarroRepository#buscaTodos,CarroRepository.java: 文件的第 21 行,我们得到这一行:

Query query = this.manager.createQuery("select x from Carro x");

NullPointerException 表示EntityManager managernull

您必须检查为什么EntityManagerFactory 无法在您的JPAFilter servlet 过滤器中创建EntityManager 的新实例。

【讨论】:

  • hibernate 不会在 mysql 中生成 carro 实体,这很奇怪,因为 mysql jar 位于正确的文件夹中!我认为这就是它在 JPAFilter 类中生成 NullPointer 异常的原因。而且不知道怎么解决。
  • @PattersonSilva 不信任 Hibernate 或 ORM 框架来为您创建表。考虑自己创建表格。
  • 是的,我明白,但应该可以工作,我想知道为什么不工作!我遵循了一个教程,但不要在此处发布葡萄牙语!
  • @PattersonSilva 等待 JPA 专家为您提供帮助。我只是想帮你解决这个当前的问题。 IMO 这应该是本网站的另一个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多