GAE中的Hibernate Ehcache抛出java.lang.NoClassDefFoundError:java.rmi.server.UID是一个受限制的类

时间:2016-02-09 11:38:53

标签: java hibernate google-app-engine rmi ehcache

我是Google App Engine的新手。之前我使用jsf,hibernate,java和glassfish服务器创建了一个动态Web应用程序。现在我将该应用程序结构转换为Google App引擎结构。所以现在我使用GAE和本地MySQL数据库。

我使用Runtime Target GAE Server创建了Simple Dynamic Web应用程序。我可以调用Jsf登录页面,但无法登录应用程序获取function launchTriggerEvent(event) { var $this = $(event.target); alert($this); alert(event.type);// alerts "click" $this.toggleClass('is-selected').find('i').toggleClass('is-selected'); $this.parents('.pg-features').find('ul').toggleClass('list-open'); } var elems = document.getElementsByClassName('pg-features-trigger js-FeaturesTrigger'); Array.prototype.map.call(elems, function(el) { el.addEventListener("click", launchTriggerEvent, false); }); 的原因。

此处的完整堆栈跟踪

java.lang.NoClassDefFoundError: java.rmi.server.UID is a restricted class

我的HibernateSessionFactory类(我遇到错误的代码片段):

Caused by: java.lang.NoClassDefFoundError: java.rmi.server.UID is a restricted class. Please see the Google  App Engine developer's guide for more details.
    at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:52)
    at net.sf.ehcache.Cache.<init>(Cache.java:191)
    at net.sf.ehcache.config.ConfigurationHelper.createCache(ConfigurationHelper.java:291)
    at net.sf.ehcache.config.ConfigurationHelper.createDefaultCache(ConfigurationHelper.java:241)
    at net.sf.ehcache.CacheManager.configure(CacheManager.java:262)
    at net.sf.ehcache.CacheManager.init(CacheManager.java:196)
    at net.sf.ehcache.CacheManager.<init>(CacheManager.java:183)
    at net.sf.ehcache.CacheManager.create(CacheManager.java:343)
    at org.hibernate.cache.EhCacheProvider.start(EhCacheProvider.java:130)
    at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:173)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1176)
    at hibernate.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:31)
    at hibernate.UsersDAO.login(UsersDAO.java:98)
    at utils.LoginBean.loginProject(LoginBean.java:82)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.el.parser.AstValue.invoke(AstValue.java:191)
    at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
    ... 43 more

我无法理解我在哪里做错了。如果有任何人有相同的经验,请分享我 我在谷歌上搜索这个例外并获得了很多答案,但这个答案并不合适,因为在不同的库中获得例外。

在此先感谢并表示赞赏。

1 个答案:

答案 0 :(得分:0)

看起来您使用的是旧版本的EhCache。 此文档http://www.ehcache.org/documentation/2.8/integrations/googleappengine.html表示您应使用2.3+版本以避免java.rmi.server.UID is a restricted class例外。