Generic class extends jpacontainer ?

I’m trying create a generic class for automate the creation of jpacontainer in my project but doesn’t work and returns some errors. The errors refer No EntityProvider has been set.

I’m trying this.

/** generic class that create a jpacontainer object */
public class PersistJPAContainer<T> extends JPAContainer<T>{    
    private static final long serialVersionUID = 1L;
    private static final String PERSISTENCE_UNITNAME = "academiaonline";
    
    public PersistJPAContainer(Class<T> entityClass) {
        super(entityClass);
        EntityManager em = JPAContainerFactory.createEntityManagerForPersistenceUnit(PERSISTENCE_UNITNAME);
        setEntityProvider(new CachingMutableLocalEntityProvider<T>(entityClass, em));
    }
}


public class AcademiaonlineUI extends UI {
    private final PersistJPAContainer<Empresa> datasource = new PersistJPAContainer<Empresa>(Empresa.class);

    @Override
    protected void init(VaadinRequest request) {
        setLocale(new Locale("pt", "BR"));
        EmpresaTableView tabela = new EmpresaTableView(datasource);
        VerticalLayout vLayout = new VerticalLayout();
        
        vLayout.addComponent(tabela);
        setContent(vLayout);
    }
}


//persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
  <persistence-unit name="academiaonline" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>br.com.academiaonline.beans.Empresa</class>
    
    <properties>
        <property name="javax.persistence.jdbc.driver"         value="org.h2.Driver"/>
        <property name="javax.persistence.jdbc.url"            value="jdbc:h2:~/AODB"/>
        <property name="javax.persistence.jdbc.user"         value="sa"/>
        <property name="javax.persistence.jdbc.password"     value="master"/>    
        
        <!-- Cria a base de dados automaticamente -->        
        <property name="eclipselink.ddl-generation" value="create-or-extend-tables" />
        <property name="eclipselink.ddl-generation.output-mode" value="database" />
        
        <!-- Exibe log de erros no console do eclipse -->  
          <property name="eclipselink.logging.level" value="FINE"/>      
   </properties>   
  </persistence-unit>
</persistence>



SEVERE: 
javax.persistence.PersistenceException: No Persistence provider for EntityManager named agendaonline
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
    at com.vaadin.addon.jpacontainer.JPAContainerFactory.createEntityManagerForPersistenceUnit(JPAContainerFactory.java:122)
    at br.com.academiaonline.persistencia.PersistJPAContainer.<init>(PersistJPAContainer.java:18)
    at br.com.academiaonline.AcademiaonlineUI.<init>(AcademiaonlineUI.java:17)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at java.lang.Class.newInstance(Class.java:374)
    at com.vaadin.server.UIProvider.createInstance(UIProvider.java:36)
    at com.vaadin.server.communication.UIInitHandler.getBrowserDetailsUI(UIInitHandler.java:200)
    at com.vaadin.server.communication.UIInitHandler.synchronizedHandleRequest(UIInitHandler.java:73)
    at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:37)
    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1382)
    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:238)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:724)

Any idea ?