2012-01-20 45 views
0
Model/My_Table_Name.java 

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package models; 

import java.util.*; 
import javax.persistence.*; 
import play.db.jpa.*; 



@Entity 
@Table(name="My_Table_Name") 
public class My_Table_Name extends Model{ 
    public int rid; 
    public boolean siteEnabled; 
    public String finalUrl; 
    public String errorUrl; 
    public boolean tokenRequired; 

    public My_Table_Name(int rid,boolean siteEnabled, 
      String finalUrl, String errorUrl, boolean tokenRequired) 
    { 
     this.rid = rid; 
     this.errorUrl = errorUrl; 
     this.finalUrl = finalUrl; 

     this.siteEnabled = siteEnabled; 
     this.tokenRequired = tokenRequired; 
    } 

} 

控制器/ application.java哎呀:IncompatibleClassChangeError - playframework

@Before 
    static void doSomething() 
    { 
     List<My_Table_Name> config = My_Table_Name.findAll(); 
     redirect(config.get(0).finalUrl); 

    } 

错误:

Oops: IncompatibleClassChangeError 

An unexpected error occured caused by exception IncompatibleClassChangeError: 
Implementing class 

堆栈跟踪:

Oops: IncompatibleClassChangeError 
An unexpected error occured caused by exception IncompatibleClassChangeError: Implementing class 

play.exceptions.UnexpectedException: Unexpected Error 
    at play.Invoker$Invocation.onException(Invoker.java:244) 
    at play.Invoker$Invocation.run(Invoker.java:286) 
    at Invocation.HTTP Request(Play!) 
Caused by: java.lang.IncompatibleClassChangeError: Implementing class 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:129) 
    at play.db.jpa.JPAPlugin.onApplicationStart(JPAPlugin.java:118) 
    at play.plugins.PluginCollection.onApplicationStart(PluginCollection.java:480) 
    at play.Play.start(Play.java:515) 
    at play.Play.detectChanges(Play.java:618) 
    at play.Invoker$Invocation.init(Invoker.java:198) 
    ... 1 more 

以上是我的代码,我下YABE教程的指南与teh测试对于Post类,但是我想我可以在mysql数据库中使用我自己的现有表。

+0

Play服务器是否在没有该模型类和@Before代码的情况下启动?你使用的是什么版本的Java? (运行'java -version') – digiarnie

回答

0

排序这一项。显然,当我跑我的项目的依赖,它放倒旧版本的Hibernate,并在类路径中有2个引用冬眠,

一个在我的lib文件夹

,一个在玩\ lib文件夹

我从我的应用程序\ lib文件夹中删除了休眠* .jar,并且事情正在运行