Can't get JPA to work: PersistenceException

185 views
Skip to first unread message

mokaloka

unread,
May 16, 2012, 5:30:39 AM5/16/12
to play-framework
Hi all,

I seem to run into a problem I cannot solve. I am trying to connect to
my MySQL-database, but all I get is: PersistenceException: No
Persistence provider for EntityManager named DefaultDS. (I will
include the full call stack in the end of the mail).

I have tried almost everything, and was hoping anyone here had a
solution. I will supply all the files and the call-stack below.

Any help would be very much appreciated.

My persistence.xml in conf/META-INF looks as follows:
-------------------------------------------------------------------------------------
<persistence 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"
version="2.0">
<persistence-unit name="DefaultDS" transaction-
type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<non-jta-data-source>DefaultDS</non-jta-data-source>
<properties>
<property name="hibernate.dialect"
value="org.hibernate.dialect.H2Dialect"/>
</properties>
</persistence-unit>
</persistence>

My Build.scala
--------------------------------------------------------------------------------------

import sbt._
import Keys._
import PlayProject._

object ApplicationBuild extends Build {

val appName = "eBokTips"
val appVersion = "1.0-SNAPSHOT"

val appDependencies = Seq(
"mysql" % "mysql-connector-java" % "5.1.18"
)

val main = PlayProject(appName, appVersion, appDependencies,
mainLang = JAVA).settings(

)
}


My application.conf
------------------------------------------------------------------------------------------------

# This is the main configuration file for the application.
# ~~~~~

# Secret key
# ~~~~~
# The secret key is used to secure cryptographics functions.
# If you deploy your application to several instances be sure to use
the same key!
application.secret="<5Qf97RoSs_huE<6N>HIV_8jXL<Y?
Nx=t_rwDbK17rGofvwMkbp88l9X;lclbban"

# The application languages
# ~~~~~
application.langs="en"

# Global object class
# ~~~~~
# Define the Global object class for this application.
# Default to Global in the root package.
# global=Global

# Database configuration
# ~~~~~
# You can declare as many datasources as you want.
# By convention, the default datasource is named `default`
#
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost:3306/eboktips"
db.default.user=root
db.default.pass=""
#
# You can expose this datasource via JNDI if needed (Useful for JPA)
db.default.jndiName=DefaultDS
jpa.default=DefaultDS

# Evolutions
# ~~~~~
# You can disable evolutions if needed
# evolutionplugin=disabled

# Ebean configuration
# ~~~~~
# You can declare as many Ebean servers as you want.
# By convention, the default server is named `default`
#
# ebean.default="models.*"

# Logger
# ~~~~~
# You can also configure logback (http://logback.qos.ch/), by
providing a logger.xml file in the conf directory .

# Root logger:
logger.root=ERROR

# Logger used by the framework:
logger.play=INFO

# Logger provided to your application:
logger.application=DEBUG


And finally, the call stack (sorry about the line breaks)
--------------------------------------------------------------------------------------------------
javax.persistence.PersistenceException: No Persistence provider for
EntityManager named DefaultDS

javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:
69)

javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:
47)
play.db.jpa.JPAPlugin.onStart(JPAPlugin.java:35)
play.api.Play$$anonfun$start$1.apply(Play.scala:60)
play.api.Play$$anonfun$start$1.apply(Play.scala:60)
scala.collection.LinearSeqOptimized
$class.foreach(LinearSeqOptimized.scala:59)
scala.collection.immutable.List.foreach(List.scala:45)
play.api.Play$.start(Play.scala:60)
play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$3$
$anonfun$1.apply(ApplicationProvider.scala:125)
play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$3$
$anonfun$1.apply(ApplicationProvider.scala:112)
scala.Option.map(Option.scala:133)
play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply
$3.apply(ApplicationProvider.scala:112)
play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply
$3.apply(ApplicationProvider.scala:110)
scala.Either$RightProjection.flatMap(Either.scala:277)
play.core.ReloadableApplication$$anonfun$get
$1.apply(ApplicationProvider.scala:110)
play.core.ReloadableApplication$$anonfun$get
$1.apply(ApplicationProvider.scala:110)
akka.dispatch.Future$$anon$3.liftedTree1$1(Future.scala:195)
akka.dispatch.Future$$anon$3.run(Future.scala:194)
akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:83)
akka.jsr166y.ForkJoinTask
$AdaptedRunnableAction.exec(ForkJoinTask.java:1381)
akka.jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:259)
akka.jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:
997)
akka.jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1495)
akka.jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:
104)

Tex

unread,
May 16, 2012, 2:31:01 PM5/16/12
to play-fr...@googlegroups.com
Hi,

I can't work with Scala but with Play2/Java I had the same issue, I've solved setting these parts:

- conf/application.conf
db.default.jndiName=DefaultDS
jpa.default=defaultPersistenceUnit
#ebean.default="models.*"

- added conf/META-INF/persistence.xml

- project/Build.scala
    val appDependencies = Seq(
      "org.hibernate" % "hibernate-entitymanager" % "3.6.9.Final"
    )
    val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
      ebeanEnabled := false
    )

WARNING: the previous setting is for JAVA application so modify it for your environment...

Hope this helps...

Mantas Sinkevičius

unread,
Jan 20, 2013, 11:35:52 AM1/20/13
to play-fr...@googlegroups.com

PersistenceException: No Persistence provider for EntityManager named defaultPersistenceUnit


Still the same.
Reply all
Reply to author
Forward
0 new messages