首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oops: IncompatibleClassChangeError - playframework

Oops: IncompatibleClassChangeError - playframework
EN

Stack Overflow用户
提问于 2012-01-21 01:26:41
回答 1查看 938关注 0票数 0
代码语言:javascript
复制
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;
    }

}

控制器/应用程序.java

代码语言:javascript
复制
@Before
    static void doSomething()
    {
        List<My_Table_Name> config = My_Table_Name.findAll();
        redirect(config.get(0).finalUrl);

    }

错误:

代码语言:javascript
复制
Oops: IncompatibleClassChangeError 

An unexpected error occured caused by exception IncompatibleClassChangeError:
 Implementing class

堆栈跟踪:

代码语言:javascript
复制
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教程的指南,并使用test for Post类,但我认为我可以使用我自己的mysql数据库中的现有表。

EN

回答 1

Stack Overflow用户

发布于 2012-01-21 10:46:55

解决了这个问题。显然,当我为我的项目运行依赖项时,它带来了旧版本的hibernate,并且在类路径中有两个对hibernate的引用。

一个在我的lib文件夹中

另一个在play\lib文件夹中

我从我的*.jar \lib文件夹中删除了hibernate库,一切正常

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8945383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档