2012-12-24 14 views
5

Próbuję użyć Sorma do projektu ramowego gry. Używam wersji 2.1, która używa Scala 2.10. Problemem jest to, że moje zajęcia nie są rozpoznawane przez SORM, dostaję ClassNotFoundExceptionSorm and Play Framework 2.1

Oto co kiedyś:

package models 

case class User(val name: String) 

object Db extends Instance (
    entities = Set(Entity[User]()), 
    url = "jdbc:h2:mem:test" 
) 

W moim kontrolera:

import models.{Db,User} 

object Application extends Controller { 
    def index = Action { 
    Db.save(User("test")) // Error at this line 
    Ok("saved") 
    } 
} 

i wyjątek:

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] 

Masz pomysł, jak to zrobić?

+2

OK. Pograłem trochę z Play 2.1-RC1. Wygląda na to, że są konflikty między automatyczną rekompilacją Play a zależnością SORM od refleksji. Nie jestem ekspertem od Play, ale jestem pewien, że muszą istnieć sposoby na obejście tego. Postaramy się rozwiązać ten problem w nadchodzących wydaniach, ale jak na razie jest to smutne, ponieważ uważa się, że oficjalny status Play + SORM jest niekompatybilny. Jeśli jednak ktoś znajdzie obejście, jego publikacja będzie bardzo cenna. –

+0

Dziękujemy za obejrzenie. Będę pilnować twoich następnych wydań;) – vdebergue

Odpowiedz

Powiązane problemy