I'm getting the following exception when trying to persist data using a jta
configured data source

<openjpa-2.2.0-r422266:1244990 fatal general error>
org.apache.openjpa.persistence.PersistenceException: invalid authorization
specification - not found: root

My datasource is listed in tomee.xml

<Resource id="jdbc/mysql" type="javax.sql.DataSource">
        # configure the pool
        DataSourceCreator = tomcat
        # it is a jta datasource
        JtaManaged = true
        # tomcat pool configuration
        driverClassName = com.mysql.jdbc.Driver
        url =
jdbc:mysql://localhost:3306/adaptiveauth?noAccessToProcedureBodies=true
        username = root
        password = *******
        validationQuery = SELECT 1
        maxActive=4
        maxIdle=2
        maxWait=-1
        jmxEnabled = true # specific to tomcat pooling
</Resource>

My persistence.xml is

<?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="analyticsPU" transaction-type="JTA">
    <jta-data-source>jdbc/mysql</jta-data-source>
    <properties>
        <property name="openjpa.jdbc.SynchronizeMappings"
value="buildSchema(foreignKeys=true,schemaAction='dropDB,add')"/>
        <property name="openjpa.jdbc.SchemaFactory"
value="native(foreignKeys=true)" />
        <property name="openjpa.jdbc.MappingDefaults"
value="ForeignKeyDeleteAction=restrict,
JoinForeignKeyDeleteAction=restrict"/>
        <property name="openjpa.Log" value="DefaultLevel=TRACE,SQL=TRACE" />
    </properties>
  </persistence-unit>
</persistence>

My web.xml has

    <persistence-unit-ref>
       
<persistence-unit-ref-name>persistence-factory</persistence-unit-ref-name>
        <persistence-unit-name>analyticsPU</persistence-unit-name>
    </persistence-unit-ref>


Code to create EntityManagerFactory

return (EntityManagerFactory) new
InitialContext().lookup("java:comp/env/persistence-factory");

Below is the log trace for openjpa when trying to open a connection


13776  analyticsPU  INFO   [http-bio-10080-exec-1] openjpa.Runtime -
Starting OpenJPA 2.2.0
13777  analyticsPU  TRACE  [http-bio-10080-exec-1] openjpa.Runtime -
Properties: javax.persistence.lock.timeout: 0
javax.persistence.query.timeout: 0
javax.persistence.sharedCache.mode: UNSPECIFIED
javax.persistence.validation.group.pre-persist:
javax.validation.groups.Default
javax.persistence.validation.group.pre-update:
javax.validation.groups.Default
javax.persistence.validation.mode: AUTO
openjpa.AutoClear: 0
openjpa.AutoDetach: []
openjpa.BrokerFactory: jdbc
openjpa.BrokerImpl: non-finalizing
openjpa.CacheDistributionPolicy: default
openjpa.Callbacks: default
openjpa.ClassResolver:
org.apache.openjpa.persistence.PersistenceUnitInfoImpl$ClassResolverImpl
openjpa.Compatibility: default
openjpa.ConnectionFactoryMode: true
openjpa.ConnectionRetainMode: 0
openjpa.DataCache: false
openjpa.DataCacheManager: default
openjpa.DataCacheTimeout: -1
openjpa.DetachState: loaded
openjpa.DynamicDataStructs: false
openjpa.DynamicEnhancementAgent: true
openjpa.EntityManagerFactory: default
openjpa.FetchBatchSize: -1
openjpa.FetchGroups: [default]
openjpa.FlushBeforeQueries: 0
openjpa.Id: analyticsPU
openjpa.IgnoreChanges: false
openjpa.InitializeEagerly: false
openjpa.InstrumentationManager: default
openjpa.InverseManager: false
openjpa.LifecycleEventManager: validating
openjpa.LockManager: mixed
openjpa.Log: true(DefaultLevel=TRACE,SQL=TRACE)
openjpa.ManagedRuntime: auto
openjpa.MaxFetchDepth: -1
openjpa.MetaDataFactory:
jpa(Files=/C:/opt/tomcat7/webapps/analytics/WEB-INF/classes/)
openjpa.MetaDataRepository: default
openjpa.Multithreaded: false
openjpa.NontransactionalRead: true
openjpa.NontransactionalWrite: true
openjpa.Optimistic: true
openjpa.OptimizeIdCopy: false
openjpa.OrphanedKeyAction: log
openjpa.PostLoadOnMerge: false
openjpa.ProxyManager: default
openjpa.QueryCache: false
openjpa.QueryCompilationCache: true
openjpa.ReadLockLevel: 10
openjpa.RefreshFromDataCache: false
openjpa.RestoreState: 1
openjpa.RetainState: true
openjpa.RetryClassRegistration: false
openjpa.RuntimeUnenhancedClasses: 0
openjpa.SavepointManager: in-mem
openjpa.Sequence: table
openjpa.TransactionMode: true
openjpa.WriteLockLevel: 20
openjpa.jdbc.DriverDataSource: auto
openjpa.jdbc.EagerFetchMode: 2
openjpa.jdbc.FetchDirection: 1000
openjpa.jdbc.FinderCache: true
openjpa.jdbc.IdentifierUtil: default
openjpa.jdbc.LRSSize: 2
openjpa.jdbc.MappingDefaults: jpa(ForeignKeyDeleteAction=restrict,
JoinForeignKeyDeleteAction=restrict)
openjpa.jdbc.QuerySQLCache: true
openjpa.jdbc.ResultSetType: 1003
openjpa.jdbc.SQLFactory: default
openjpa.jdbc.SchemaFactory: native(foreignKeys=true)
openjpa.jdbc.Schemas: []
openjpa.jdbc.SubclassFetchMode: 1
openjpa.jdbc.SynchronizeMappings:
buildSchema(foreignKeys=true,schemaAction='dropDB,add')
openjpa.jdbc.TransactionIsolation: -1
openjpa.jdbc.UpdateManager: default
13814  analyticsPU  TRACE  [http-bio-10080-exec-1] openjpa.Runtime - No
cache marshaller found for id
org.apache.openjpa.conf.MetaDataCacheMaintenance.
13903  analyticsPU  TRACE  [http-bio-10080-exec-1] openjpa.MetaData - Using
metadata factory
"org.apache.openjpa.persistence.jdbc.PersistenceMappingFactory@1da817b".
13907  analyticsPU  TRACE  [http-bio-10080-exec-1] openjpa.jdbc.JDBC -
OpenJPA will now connect to the database to attempt to determine what type
of database dictionary to use. You may prevent this connection in the future
by setting your openjpa.jdbc.DBDictionary configuration property to the
appropriate value for your database (see the documentation for available
values).
13921  analyticsPU  TRACE  [http-bio-10080-exec-1] openjpa.jdbc.JDBC -
createConnectionFactory:
DataSource:org.apache.openejb.resource.jdbc.managed.local.ManagedDataSource@121f653
Oct 1, 2012 10:44:46 AM org.hsqldb.persist.Logger logInfoEvent
INFO: checkpointClose start
Oct 1, 2012 10:44:46 AM org.hsqldb.persist.Logger logInfoEvent
INFO: checkpointClose end
14503  analyticsPU  TRACE  [http-bio-10080-exec-1] openjpa.Runtime - No
cache marshaller found for id
org.apache.openjpa.conf.MetaDataCacheMaintenance.
14503  analyticsPU  TRACE  [http-bio-10080-exec-1] openjpa.MetaData - Using
metadata factory
"org.apache.openjpa.persistence.jdbc.PersistenceMappingFactory@1613fe7".
14503  analyticsPU  TRACE  [http-bio-10080-exec-1] openjpa.jdbc.JDBC -
OpenJPA will now connect to the database to attempt to determine what type
of database dictionary to use. You may prevent this connection in the future
by setting your openjpa.jdbc.DBDictionary configuration property to the
appropriate value for your database (see the documentation for available
values).
14523  analyticsPU  TRACE  [http-bio-10080-exec-1] openjpa.jdbc.JDBC -
createConnectionFactory:
DataSource:org.apache.openejb.resource.jdbc.managed.local.ManagedDataSource@121f653
Oct 1, 2012 10:44:46 AM
com.adaptiveauth.rest.server.resources.InspectionResourceBase postInspection
INFO: <openjpa-2.2.0-r422266:1244990 fatal general error>
org.apache.openjpa.persistence.PersistenceException: invalid authorization
specification - not found: root


Don't know what kind of authorization is required for my user 'root' since
that user has all privileges on the database.




--
View this message in context: 
http://openejb.979440.n4.nabble.com/Getting-a-persistence-exception-using-openjpa-jta-datasource-tp4657731.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.

Reply via email to