I did not do exactly what you said. But I export my codes to a jar and put it in the same place where the jcs jar is, and that solves the issue! Now I just need to figure our how to do it the other way around.
Thanks Arron for all your help! I have another question more about JCS, I will put it in another thread. Eddie On 4/24/06, Smuts, Aaron <[EMAIL PROTECTED]> wrote: > > Put the jcs jar in the same place as the jars that contain your code. > This will solve the problem. > > > -----Original Message----- > > From: Eddie Liu [mailto:[EMAIL PROTECTED] > > Sent: Monday, April 24, 2006 8:34 AM > > To: JCS Users List > > Subject: Re: ClassNotFoundException on value object when > MemoryShrinker is > > enabled > > > > Hi, > > > > I had trouble compiling my codes after I moved the jar files to the > same > > directory. The following is the full stacktrace. The value object > class > > is > > now ListHashMap, but the issue is the same. > > > > I will keep trying different things. > > > > Thanks for your help! Any other suggestions are welcome! > > > > ------------------------------------------------- > > [4/24/06 8:21:17:594 EDT] 00000054 IndexedDisk E TRAS0014I: The > > following exception was logged java.lang.ClassNotFoundException: > > mypackage.util.ListHashMap > > at com.ibm.ws.classloader.CompoundClassLoader.findClass( > > CompoundClassLoader.java(Compiled Code)) > > at com.ibm.ws.classloader.CompoundClassLoader.loadClass( > > CompoundClassLoader.java:414) > > at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code)) > > at java.lang.Class.forName0(Native Method) > > at java.lang.Class.forName(Class.java:260) > > at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:591) > > at > > > java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1546) > > at > java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1468) > > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java > > :1659) > > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1307) > > at > > > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1877) > > at > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1801) > > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java > > :1679) > > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1307) > > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:357) > > at org.apache.jcs.auxiliary.disk.indexed.IndexedDisk.readObject( > > IndexedDisk.java:114) > > at > org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.readElement( > > IndexedDiskCache.java:526) > > at org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.doGet( > > IndexedDiskCache.java:484) > > at org.apache.jcs.auxiliary.disk.AbstractDiskCache.get( > > AbstractDiskCache.java:298) > > at > org.apache.jcs.engine.control.CompositeCache.get(CompositeCache.java > > :488) > > at > org.apache.jcs.engine.control.CompositeCache.get(CompositeCache.java > > :391) > > at org.apache.jcs.access.CacheAccess.get(CacheAccess.java:201) > > at mypackage.data.ListDSManager.getCachedObj(ListDSManager.java:81) > > at > mypackage.actions.EventUpdateAction.execute(EventUpdateAction.java:48) > > at org.apache.struts.action.RequestProcessor.processActionPerform( > > RequestProcessor.java:484) > > at > > > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java > > :274) > > at > > > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) > > at > org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > > at com.ibm.ws.webcontainer.servlet.ServletWrapper.service( > > ServletWrapper.java:1212) > > at com.ibm.ws.webcontainer.servlet.ServletWrapper.service( > > ServletWrapper.java:1173) > > at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter( > > WebAppFilterChain.java:92) > > at > > > mypackage.application.BemsServletFilter.doFilter(BemsServletFilter.java > > :29) > > at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter( > > FilterInstanceWrapper.java:142) > > at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter( > > WebAppFilterChain.java:77) > > at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest( > > ServletWrapper.java:626) > > at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest( > > CacheServletWrapper.java:80) > > at > com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java > > :1657) > > at > com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java > > :77) > > at > > > com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscriminatio > n( > > HttpInboundLink.java:421) > > at > > > com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformatio > n( > > HttpInboundLink.java:367) > > at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete( > > HttpICLReadCallback.java:94) > > at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete( > > WorkQueueManager.java:548) > > at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO( > > WorkQueueManager.java:601) > > at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun( > > WorkQueueManager.java:934) > > at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run( > > WorkQueueManager.java:1021) > > at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1332) > > . > > java.lang.ClassNotFoundException: > > mypackage.util.ListHashMap > > at com.ibm.ws.classloader.CompoundClassLoader.findClass( > > CompoundClassLoader.java(Compiled Code)) > > at com.ibm.ws.classloader.CompoundClassLoader.loadClass( > > CompoundClassLoader.java:414) > > at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code)) > > at java.lang.Class.forName0(Native Method) > > at java.lang.Class.forName(Class.java:260) > > at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:591) > > at > > > java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1546) > > at > java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1468) > > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java > > :1659) > > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1307) > > at > > > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1877) > > at > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1801) > > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java > > :1679) > > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1307) > > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:357) > > at org.apache.jcs.auxiliary.disk.indexed.IndexedDisk.readObject( > > IndexedDisk.java:114) > > at > org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.readElement( > > IndexedDiskCache.java:526) > > at org.apache.jcs.auxiliary.disk.indexed.IndexedDiskCache.doGet( > > IndexedDiskCache.java:484) > > at org.apache.jcs.auxiliary.disk.AbstractDiskCache.get( > > AbstractDiskCache.java:298) > > at > org.apache.jcs.engine.control.CompositeCache.get(CompositeCache.java > > :488) > > at > org.apache.jcs.engine.control.CompositeCache.get(CompositeCache.java > > :391) > > at org.apache.jcs.access.CacheAccess.get(CacheAccess.java:201) > > at mypackage.data.ListDSManager.getCachedObj(ListDSManager.java:81) > > at > mypackage.actions.EventUpdateAction.execute(EventUpdateAction.java:48) > > at org.apache.struts.action.RequestProcessor.processActionPerform( > > RequestProcessor.java:484) > > at > > > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java > > :274) > > at > > > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) > > at > org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > > at com.ibm.ws.webcontainer.servlet.ServletWrapper.service( > > ServletWrapper.java:1212) > > at com.ibm.ws.webcontainer.servlet.ServletWrapper.service( > > ServletWrapper.java:1173) > > at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter( > > WebAppFilterChain.java:92) > > at > > > mypackage.application.BemsServletFilter.doFilter(BemsServletFilter.java > > :29) > > at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter( > > FilterInstanceWrapper.java:142) > > at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter( > > WebAppFilterChain.java:77) > > at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest( > > ServletWrapper.java:626) > > at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest( > > CacheServletWrapper.java:80) > > at > com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java > > :1657) > > at > com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java > > :77) > > at > > > com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscriminatio > n( > > HttpInboundLink.java:421) > > at > > > com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformatio > n( > > HttpInboundLink.java:367) > > at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete( > > HttpICLReadCallback.java:94) > > at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete( > > WorkQueueManager.java:548) > > at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO( > > WorkQueueManager.java:601) > > at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun( > > WorkQueueManager.java:934) > > at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run( > > WorkQueueManager.java:1021) > > at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1332) > > > > On 4/22/06, Aaron Smuts <[EMAIL PROTECTED]> wrote: > > > > > > It looks like your class files are not available to > > > the classloader that loaded JCS. Put the jars in the > > > same directory and see if it helps. Also, can you > > > send the full stack trace of the error if it is in the > > > logs. > > > > > > Aaron > > > > > > --- Eddie Liu <[EMAIL PROTECTED]> wrote: > > > > > > > Yes, I am running under IBM Websphere application > > > > server. Can you further > > > > explain what you mean by "same place as my code"? > > > > Now the jcs jar is in a > > > > different directory and I have set up the > > > > dependencies (class-path in the > > > > MANIFEST.MF) so that my application can find the jar > > > > files. I can move them > > > > to /WEB-INF/lib and see if that makes a difference, > > > > is that what you > > > > suggest? > > > > > > > > Thank you for your help! > > > > > > > > On 4/21/06, Smuts, Aaron > > > > <[EMAIL PROTECTED]> wrote: > > > > > > > > > > Looks like a classloader issue. Are you running > > > > inside of some evil > > > > > application server that never did a nice thing for > > > > anyone? . . . Is > > > > > the jcs jar in the same place as your code? > > > > > > > > > > > -----Original Message----- > > > > > > From: Eddie Liu [mailto:[EMAIL PROTECTED] > > > > > > Sent: Friday, April 21, 2006 12:03 PM > > > > > > To: jcs-users@jakarta.apache.org > > > > > > Subject: ClassNotFoundException on value object > > > > when MemoryShrinker is > > > > > > enabled > > > > > > > > > > > > Hi, > > > > > > > > > > > > I have set up a cache region using DC, with > > > > MemoryShrinker enabled > > > > > (true). > > > > > > I still receive the NoClassDefFoundError each > > > > time when restarting the > > > > > web > > > > > > server, that issue was discussed under a > > > > different threat. > > > > > > > > > > > > This time, with MemoryShrinker on, when the > > > > memory cache expired, I > > > > > could > > > > > > see the listDS.data file got populated and the > > > > file size went from 0k > > > > > to > > > > > > 1k. But after it wrote to the file in disk, > > > > i.e., after I saw in the > > > > > log: > > > > > > > > > > > > > > > > > > > ------------------------------------------------------ > > > > > > > > > > > > > ------------------------------------------------------ > > > > > > [4/21/06 11:56:51:375 EDT] 0000003e > > > > CacheEventQue I Cache event > > > > > queue > > > > > > created: CacheEventQueue > > > > [listenerId=-1121403549, cacheName=listDS] > > > > > > [4/21/06 11:57:01:391 EDT] 00000041 > > > > CacheEventQue I QProcessor > > > > > exiting > > > > > > for > > > > > > CacheEventQueue [listenerId=-1121403549, > > > > cacheName=listDS] > > > > > > > > > > > > > ------------------------------------------------------ > > > > > > > > > > > > > ------------------------------------------------------ > > > > > > > > > > > > if I tried to access the cache again, I got the > > > > following exception: > > > > > > > > > > > > > > > > > > > ------------------------------------------------------ > > > > > > > > > > > > > ------------------------------------------------------ > > > > > > [4/21/06 11:58:52:406 EDT] 00000035 IndexedDisk > > > > E TRAS0014I: The > > > > > > following exception was logged > > > > java.lang.ClassNotFoundException: > > > > > > mypackage.BookVObj > > > > > > at > > > > > > > com.ibm.ws.classloader.CompoundClassLoader.findClass( > > > > > > CompoundClassLoader.java(Compiled Code)) > > > > > > at > > > > > > > com.ibm.ws.classloader.CompoundClassLoader.loadClass( > > > > > > CompoundClassLoader.java:414) > > > > > > > > > > > > > ------------------------------------------------------ > > > > > > > > > > > > > ------------------------------------------------------ > > > > > > > > > > > > where BookVObj is my value object for the cache. > > > > But again, in the > > > > > > BookVObjManager, since it could not find the > > > > value object from cache, > > > > > it > > > > > > was > > > > > > loaded from database and things seems to be > > > > working fine. > > > > > > > > > > > > So what do I need to do to get rid of that > > > > exception? > > > > > > > > > > > > The following is my cache.ccf setup for the > > > > region. > > > > > > > > > > > > > > > > > > > ------------------------------------------------------ > > > > > > > > > > > > > ------------------------------------------------------ > > > > > > jcs.region.listDS=DC > > > > > > > > > > > > > > > > > > > jcs.region.listDS.cacheattributes=org.apache.jcs.engine.CompositeCacheAt > > > > > tr > > > > > > ibutes > > > > > > > > > > jcs.region.listDS.cacheattributes.MaxObjects=1200 > > > > > > > > > > > > > > > > > > > jcs.region.listDS.cacheattributes.MemoryCacheName=org.apache.jcs.engine. > > > > > me > > > > > > mory.lru.LRUMemoryCache > > > > > > > > > > jcs.region.listDS.elementattributes.IsEternal=false > > > > > > > > > > > > > jcs.region.listDS.elementattributes.MaxLifeSeconds=10 > > > > > > > > > > jcs.region.listDS.elementattributes.IdleTime=1800 > > > > > > jcs.region.listDS.elementattributes.IsSpool=true > > > > > > > > > > jcs.region.listDS.elementattributes.IsRemote=true > > > > > > > > > > jcs.region.listDS.elementattributes.IsLateral=true > > > > > > > > > > > > > > > > > > > jcs.region.listDS.cacheattributes.UseMemoryShrinker=true > > > > > > > > > > > > > jcs.region.listDS.cacheattributes.MaxMemoryIdleTimeSeconds=5 > > > > > > > > > > > > > jcs.region.listDS.cacheattributes.ShrinkerIntervalSeconds=5 > > > > > > > > > > jcs.region.listDS.cacheattributes.MaxSpoolPerRun=500 > > > > > > > > > > > > > > > > > > > ------------------------------------------------------ > > > > > > > > > > > > > ------------------------------------------------------ > > > > > > > > > > > > Thank you for all of you help!! > > > > > > > > > > > > Eddie > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > To unsubscribe, e-mail: > > > > [EMAIL PROTECTED] > > > > > For additional commands, e-mail: > > > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >