5
Sto provando a utilizzare Sorm in un progetto di struttura di gioco. Sto usando la versione 2.1 che usa Scala 2.10. Il problema è che le mie classi non sono riconosciuti dal Sorm, ho un ClassNotFoundException
Sorm and Play Framework 2.1
Ecco quello che ho usato:
package models
case class User(val name: String)
object Db extends Instance (
entities = Set(Entity[User]()),
url = "jdbc:h2:mem:test"
)
Nel mio controller:
import models.{Db,User}
object Application extends Controller {
def index = Action {
Db.save(User("test")) // Error at this line
Ok("saved")
}
}
e l'eccezione:
play.api.Application$$anon$1: Execution exception[[ClassNotFoundException: models.User]]
at play.api.Application$class.handleError(Application.scala:279) ~[play_2.10.jar:2.1-RC1]
at play.api.DefaultApplication.handleError(Application.scala:373) [play_2.10.jar:2.1-RC1]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$10$$anonfun$apply$27.apply(PlayDefaultUpstreamHandler.scala:296) [play_2.10.jar:2.1-RC1]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$10$$anonfun$apply$27.apply(PlayDefaultUpstreamHandler.scala:294) [play_2.10.jar:2.1-RC1]
at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:110) [play_2.10.jar:2.1-RC1]
at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:110) [play_2.10.jar:2.1-RC1]
Caused by: java.lang.ClassNotFoundException: models.User
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[na:1.7.0_09]
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[na:1.7.0_09]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_09]
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[na:1.7.0_09]
at java.lang.ClassLoader.loadClass(ClassLoader.java:423) ~[na:1.7.0_09]
at java.lang.ClassLoader.loadClass(ClassLoader.java:356) ~[na:1.7.0_09]
Qualche idea su come posso farlo funzionare?
Ok. Ho scavato un po 'con Play 2.1-RC1. Sembra che ci siano dei conflitti tra l'auto-ricompilazione di Play e la dipendenza dalla riflessione di SORM. Non sono un esperto di Play, ma sono sicuro che ci devono essere dei modi per aggirare questo problema. Cercheremo di risolvere il problema nelle versioni di lancio, ma per ora è triste come lo stato ufficiale di Play + SORM incompatibile. Se tuttavia qualcuno trova una soluzione alternativa, la pubblicazione sarà molto apprezzata. –
Grazie per averlo esaminato. Terrò d'occhio le tue prossime uscite;) – vdebergue