2017-01-23 17 views
0

자바 6에 잘 작동 Ebean 서버에 클래스를 등록 할 수 없습니다 하지만, 놀이는 다음과 같은 오류플레이 프레임 워크 : 나는 자바 7 사용할 때 7. 모든 자바 6에서 업그레이드하려고

Cannot register class [models.ActivityMetrics] in Ebean server 
In conf/dev.conf at line 43. 
41 
42 evolutionplugin=disabled 
43 ebean.default = "models.*" <<<<<<<<<<<<<<<<<<<<< 
44 

에게 제공 그것은 maven 프로젝트입니다. 그것은 성공적으로 빌드하지만 런타임에 위의 오류를 제공합니다.

나는 2.2.0 버전의 게임을 사용 중입니다.

이전에 유사한 질문에 대한 답변으로 권장 된 명령 시퀀스 인 clean, compile, play을 사용해 보았지만 도움이되지 않았습니다.

Java 6 대신 Java 7을 사용할 때 모델에 대한 요구 사항이 변경됩니까? 내가 무엇을 바꿔야하는지에 대한 추천.

업데이트 :

로그 파일에 다음 스택 추적을 발견.

play.api.Configuration$$anon$1: Configuration error[Cannot register class [models.ActivityMetrics] in Ebean server] 
    at play.api.Configuration$.play$api$Configuration$$configError(Configuration.scala:92) ~[play_2.10-2.2.6.jar:2.2.6] 
    at play.api.Configuration.reportError(Configuration.scala:570) ~[play_2.10-2.2.6.jar:2.2.6] 
    at play.Configuration.reportError(Configuration.java:307) ~[play_2.10-2.2.6.jar:2.2.6] 
    at play.db.ebean.EbeanPlugin.onStart(EbeanPlugin.java:71) ~[play-java-ebean_2.10-2.2.6.jar:2.2.6] 
    at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:88) ~[play_2.10-2.2.6.jar:2.2.6] 
    at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:88) ~[play_2.10-2.2.6.jar:2.2.6] 
    at scala.collection.immutable.List.foreach(List.scala:318) ~[scala-library-2.10.2.jar:na] 
    at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:88) ~[play_2.10-2.2.6.jar:2.2.6] 
    at play.api.Play$$anonfun$start$1.apply(Play.scala:88) ~[play_2.10-2.2.6.jar:2.2.6] 
    at play.api.Play$$anonfun$start$1.apply(Play.scala:88) ~[play_2.10-2.2.6.jar:2.2.6] 
    at play.utils.Threads$.withContextClassLoader(Threads.scala:18) ~[play_2.10-2.2.6.jar:2.2.6] 
    at play.api.Play$.start(Play.scala:87) ~[play_2.10-2.2.6.jar:2.2.6] 
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:139) ~[play_2.10-2.2.6.jar:2.2.6] 
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:112) ~[play_2.10-2.2.6.jar:2.2.6] 
    at scala.Option.map(Option.scala:145) ~[scala-library-2.10.2.jar:na] 
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply(ApplicationProvider.scala:112) ~[play_2.10-2.2.6.jar:2.2.6] 
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply(ApplicationProvider.scala:110) ~[play_2.10-2.2.6.jar:2.2.6] 
    at scala.util.Success.flatMap(Try.scala:200) ~[scala-library-2.10.2.jar:na] 
    at play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:110) ~[play_2.10-2.2.6.jar:2.2.6] 
    at play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:102) ~[play_2.10-2.2.6.jar:2.2.6] 
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) ~[scala-library-2.10.2.jar:na] 
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) ~[scala-library-2.10.2.jar:na] 
    at scala.concurrent.forkjoin.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1361) ~[scala-library-2.10.2.jar:na] 
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) ~[scala-library-2.10.2.jar:na] 
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) ~[scala-library-2.10.2.jar:na] 
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) ~[scala-library-2.10.2.jar:na] 
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) ~[scala-library-2.10.2.jar:na] 
Caused by: java.lang.VerifyError: Stack map does not match the one at exception handler 188 
Exception Details: 
    Location: 
    models/ActivityMetrics.delete()V @188: astore_2 
    Reason: 
    Type 'models/Activity' (current frame, locals[5]) is not assignable to 'java/lang/String' (stack map, locals[5]) 
    Current Frame: 
    bci: @117 
    flags: { } 
    locals: { 'models/ActivityMetrics', 'java/lang/String', 'java/util/ArrayList', top, 'models/ActivityMetrics', 'models/Activity' } 
    stack: { 'java/lang/Exception' } 
    Stackmap Frame: 
    bci: @188 
    flags: { } 
    locals: { 'models/ActivityMetrics', 'java/lang/String', top, top, 'java/lang/Object', 'java/lang/String' } 
    stack: { 'java/lang/Exception' } 
    Bytecode: 
    0000000: bb00 3459 b700 3513 0107 b600 372a 3a04 
    0000010: 013a 0519 04b6 03c4 3a05 1905 3a04 013a 
    0000020: 0519 04b6 03de 3a05 1905 b600 3713 0108 
    0000030: b600 37b6 0039 4cb2 0015 2bb6 0017 b200 
    0000040: 152a 3a04 013a 0519 04b6 03c4 3a05 1905 
    0000050: 3a04 013a 0519 04b6 03e0 3a05 1905 b600 
    0000060: 17bb 002f 59b7 0030 4d2c 2a3a 0401 3a05 
    0000070: 1904 b603 c43a 0519 053a 0401 3a05 1904 
    0000080: b603 e03a 0519 05b9 0091 0200 57b8 000a 
    0000090: 4e2a 57b2 000e 2d3a 0401 3a05 1904 b603 
    00000a0: bf3a 0519 053a 0401 3a05 1904 b603 c23a 
    00000b0: 0519 052b 2cb6 00fb 57a7 0016 4db2 0015 
    00000c0: 1301 09b6 0017 bb01 0a59 2cb7 010b bfb1 
    00000d0: 
    Exception Handler Table: 
    bci [97, 185] => handler: 188 
    Stackmap Table: 
    full_frame(@188,{Object[#373],Object[#410],Top,Top,Object[#376],Object[#410]},{Object[#414]}) 
    full_frame(@207,{Object[#373],Object[#410],Object[#408],Object[#407],Object[#536],Object[#410]},{}) 

    at java.lang.Class.forName0(Native Method) ~[na:1.7.0_79] 
    at java.lang.Class.forName(Class.java:274) ~[na:1.7.0_79] 
    at play.db.ebean.EbeanPlugin.onStart(EbeanPlugin.java:69) ~[play-java-ebean_2.10-2.2.6.jar:2.2.6] 
    ... 23 common frames omitted 

답변

0

필드에 직접 액세스하는 대신 getter를 사용하면 오류가 발생했습니다. 변경 사항이 적용되었습니다.

스레드 https://groups.google.com/forum/#!topic/play-framework/eWFwZ75T6wk 답변 찾기

 public void delete() throws Exception { 
-  String query = "DELETE FROM " + this.activity.merchant + "_activity_metrics WHERE uuid = ?"; 
+  String merchant = this.getActivity().getMerchant(); 
+  String query = "DELETE FROM " + merchant + "_activity_metrics WHERE uuid = ?"; 
     System.out.println(query); 
-  System.out.println(this.activity.uuid); 
+  System.out.println(this.getActivity().getUuid());