Johan Parker created OPENJPA-2878:
-------------------------------------

             Summary: <openjpa-3.1.2-r66d2a72 fatal user error> 
org.apache.openjpa.persistence.ArgumentException: The persistence provider is 
attempting to use properties in the persistence.xml file to resolve the data 
source ...
                 Key: OPENJPA-2878
                 URL: https://issues.apache.org/jira/browse/OPENJPA-2878
             Project: OpenJPA
          Issue Type: Bug
          Components: jpa
    Affects Versions: 3.1.2
            Reporter: Johan Parker


 
{code:java}
<openjpa-3.2.0-r6f721f6 fatal user error> 
org.apache.openjpa.persistence.ArgumentException: The persistence provider is 
attempting to use properties in the persistence.xml file to resolve the data 
source. A Java Database Connectivity (JDBC) driver or data source class name 
must be specified in the openjpa.ConnectionDriverName or 
javax.persistence.jdbc.driver property. The following properties are available 
in the configuration: 
"org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl@393fa2d".
        
org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:70)
        
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:925)
        
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:649)
        
org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1540)
        
org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:531)
        
org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:456)
        
org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:123)
        
org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
        org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:84)
        
org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:1113)
        
org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:1102)
        
org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:657)
        
org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:207)
        
org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:166)
        
org.apache.openjpa.persistence.EntityManagerFactoryImpl.doCreateEM(EntityManagerFactoryImpl.java:282)
        
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:201)
        
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:188)
        
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:178)
        
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:64)
        GPMWS.getJPA(GPMWS.java:26)
{code}
using Tomee 8.0.6; openjpa3.1.2; Eclipse for java ee 2020 r12

 

here is the GPMWS.java

 
{code:java}
@Path("/")
public class GPMWS {  
  
@GET
@Path("/getJPA")
@Produces(MediaType.APPLICATION_JSON)
public List<JPA> getJPA() {
EntityManager entityManager = 
JPAboot.getEntityManagerFactory().createEntityManager();                
TypedQuery<JPA> query = entityManager.createNamedQuery("getJPA", JPA.class);
List<JPA> results = query.getResultList();
return results;

}
{code}
here is JPAboot.java

 

 
{code:java}
public class JPAboot {

private static final String PERSISTENCE_UNIT_NAME = "JPAPER";
private static EntityManagerFactory factory;

public static EntityManagerFactory getEntityManagerFactory() {
        if (factory == null) {
            factory = 
Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
        }
        return factory;
    }

public static void shutdown() {
        if (factory != null) {
            factory.close();
        }
    }

}{code}
 

here JPA.java

 
{code:java}
@Entity
@Table(name = "JPAs")
@NamedQuery(name="getJPA", query="SELECT j FROM JPAs j")
public class JPA {

@Id
@Column(name = "id")
private int id;

@Column(name = "desc")
private String desc;

public JPA() {  }
public JPA(int id, String desc) {
 super();
 this.id = id;
 this.desc = desc; 
}

public String getid() { return this.id; }
public String getdesc() { return this.desc; }  
public void setid(int id) { this.id = id; }
public void setdesc(String desc) { this.desc = desc; } 

}{code}
 

mysqlconnector8.0.21 jar is under WEB-INF/lib/

here is persistence.xml(which is under META-INF/)

 
{code:java}
<persistence    xmlns="http://xmlns.jcp.org/xml/ns/persistence";
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence 
                http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd";
                version="2.1">
 <persistence-unit name="JPAPER">
  <description>openjpa</description>
  <class>JPA</class>
  <properties>
   <property name="javax.persistence.jdbc.driver" 
             value="com.mysql.cj.jdbc.Driver" />
   <property name="javax.persistence.jdbc.url"
             value="jdbc:mysql://localhost/jpatest" />
   <property name="javax.persistence.jdbc.user"
             value="root" />
  </properties>
 </persistence-unit>
</persistence>{code}
 

I think OPENJPA-1495 issue may refer to the same thing, but was just ignored



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to