Java 运行时NoClassDefFoundError的可能原因
我在Weblogic的两个节点上运行Weblogic 9、JRockit和应用程序。 在编译、部署应用程序并成功运行数小时后,我发现以下错误:Java 运行时NoClassDefFoundError的可能原因,java,weblogic,Java,Weblogic,我在Weblogic的两个节点上运行Weblogic 9、JRockit和应用程序。 在编译、部署应用程序并成功运行数小时后,我发现以下错误: java.lang.NoClassDefFoundError: net/sf/ehcache/concurrent/LockType at net.sf.ehcache.store.FrontEndCacheTier.readLock(FrontEndCacheTier.java:632) at net.sf.ehcache.store.
java.lang.NoClassDefFoundError: net/sf/ehcache/concurrent/LockType
at net.sf.ehcache.store.FrontEndCacheTier.readLock(FrontEndCacheTier.java:632)
at net.sf.ehcache.store.FrontEndCacheTier.getKeys(FrontEndCacheTier.java:485)
at net.sf.ehcache.Cache.getKeys(Cache.java:1913)
at org.terracotta.modules.ehcache.store.servermap.OnlineEhcacheSMLocalStore.getKeys(OnlineEhcacheSMLocalStore.java:44)
at org.terracotta.modules.ehcache.store.servermap.EhcacheSMLocalStore.getKeys(EhcacheSMLocalStore.java:82)
at com.terracotta.toolkit.collections.servermap.L1ServerMapLocalCacheStoreImpl.getKeys(L1ServerMapLocalCacheStoreImpl.java:51)
at com.tc.object.servermap.localcache.impl.ServerMapLocalCacheImpl.clear(ServerMapLocalCacheImpl.java:247)
at com.tc.object.TCObjectServerMapImpl.clearLocalCache(TCObjectServerMapImpl.java:600)
at com.terracotta.toolkit.collections.ConcurrentDistributedServerMapDsoApplicator.hydrate(ConcurrentDistributedServerMapDsoApplicator.java:145)
at com.tc.object.TCClassImpl.hydrate(TCClassImpl.java:199)
at com.tc.object.TCObjectImpl.hydrate(TCObjectImpl.java:113)
at com.tc.object.tx.ClientTransactionManagerImpl.basicApply(ClientTransactionManagerImpl.java:350)
at com.tc.object.tx.ClientTransactionManagerImpl.apply(ClientTransactionManagerImpl.java:378)
at com.tc.object.handler.ReceiveTransactionHandler.handleEvent(ReceiveTransactionHandler.java:100)
at com.tc.async.impl.StageImpl$WorkerThread.run(StageImpl.java:145)
<04.07.2012 13:28:54 MSD> Notice WebLogicServer BEA-000388 JVM called WLS shutdown hook. The server will force shutdown now
<04.07.2012 13:28:54 MSD> Alert WebLogicServer BEA-000396 Server shutdown has been requested by WLS Kernel
Exception in thread "Thread-42" java.lang.NoClassDefFoundError: net/sf/ehcache/concurrent/LockType
at net.sf.ehcache.store.FrontEndCacheTier.writeLock(FrontEndCacheTier.java:644)
at net.sf.ehcache.store.FrontEndCacheTier.removeAll(FrontEndCacheTier.java:503)
at net.sf.ehcache.Cache.removeAll(Cache.java:2461)
at net.sf.ehcache.Cache.removeAll(Cache.java:2446)
at org.terracotta.modules.ehcache.store.servermap.OnlineEhcacheSMLocalStore.clear(OnlineEhcacheSMLocalStore.java:13
如您所见,WebLogic在收到此错误后决定关闭这两个节点。
运行时出现NoClassDefFoundError的原因是什么?我想这个类LockType应该在这个错误之前使用,这意味着它必须在运行时卸载,对吗?可能是的重复。这个问题更常见。我希望更多的人能帮助我。另一篇文章非常专业,我不确定terracotta或ehcache在这个问题上是否有任何意义