You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by "David Evans (JIRA)" <ji...@apache.org> on 2006/04/24 22:42:11 UTC

[jira] Closed: (STR-1898) NoClassDefFoundError on weblogic 8.1 during redeploy

     [ http://issues.apache.org/struts/browse/STR-1898?page=all ]
     
David Evans closed STR-1898:
----------------------------

    Resolution: Fixed

> NoClassDefFoundError on weblogic 8.1 during redeploy
> ----------------------------------------------------
>
>          Key: STR-1898
>          URL: http://issues.apache.org/struts/browse/STR-1898
>      Project: Struts Action 1
>         Type: Bug

>   Components: Unknown
>     Versions: 1.1 Final
>  Environment: Operating System: Windows XP
> Platform: PC
>     Reporter: John Evans
>     Assignee: David Evans

>
> When I re-deploy to a running instance of Weblogic 8.1 and the container 
> notices the new files and auto-redeploys them, I get the following exception 
> on the console:
> <Dec 25, 2003 1:12:32 PM EST> <Error> <HTTP> <BEA-101268> <ServletContext
> (id=16065256,name=scrc,context-path=/scrc): Failed while destroying servlet: 
> action.
> java.lang.NoClassDefFoundError: 
> org/apache/commons/collections/FastHashMap$KeySet
>         at org.apache.commons.collections.FastHashMap.keySet(Unknown Source)
>         at org.apache.struts.action.ActionServlet.destroyDataSources
> (ActionServlet.java:769)
>         at org.apache.struts.action.ActionServlet.destroy
> (ActionServlet.java:431)
>         at weblogic.servlet.internal.ServletStubImpl$ServletDestroyAction.run
> (ServletStubImpl.java:1080)
>         at weblogic.security.acl.internal.AuthenticatedSubject.doAs
> (AuthenticatedSubject.java:317)
>         at weblogic.security.service.SecurityManager.runAs
> (SecurityManager.java:97)
>         at weblogic.servlet.internal.ServletStubImpl.destroyServlet
> (ServletStubImpl.java:564)
>         at weblogic.servlet.internal.ServletStubImpl.destroyServlet
> (ServletStubImpl.java:590)
>         at weblogic.servlet.internal.ServletStubImpl.destroyServlet
> (ServletStubImpl.java:576)
>         at weblogic.servlet.internal.WebAppServletContext.destroyServlets
> (WebAppServletContext.java:5719)
>         at weblogic.servlet.internal.WebAppServletContext.destroy
> (WebAppServletContext.java:5605)
>         at weblogic.servlet.internal.ServletContextManager.removeContext
> (ServletContextManager.java:189)
>         at weblogic.servlet.internal.HttpServer.unloadWebApp
> (HttpServer.java:624)
>         at weblogic.servlet.internal.WebAppModule.destroyOldContexts
> (WebAppModule.java:747)
>         at weblogic.servlet.internal.WebAppModule.prepare
> (WebAppModule.java:571)
>         at weblogic.j2ee.J2EEApplicationContainer.prepareWebModule
> (J2EEApplicationContainer.java:2841)
>         at weblogic.j2ee.J2EEApplicationContainer.prepareModules
> (J2EEApplicationContainer.java:1476)
>         at weblogic.j2ee.J2EEApplicationContainer.prepare
> (J2EEApplicationContainer.java:1136)
>         at weblogic.j2ee.J2EEApplicationContainer.prepare
> (J2EEApplicationContainer.java:975)
>         at 
> weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.prepareCon
> tainer(SlaveDeployer.java:2571)
>         at 
> weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.createContainer
> (SlaveDeployer.java:2523)
>         at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare
> (SlaveDeployer.java:2453)
>         at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask
> (SlaveDeployer.java:820)
>         at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta
> (SlaveDeployer.java:536)
>         at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate
> (SlaveDeployer.java:494)
>         at weblogic.drs.internal.SlaveCallbackHandler$1.execute
> (SlaveCallbackHandler.java:25)
>         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:178)
>         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:151)
> >
> It doesn't really hurt anything, but it makes some people around here 
> nervous.  If I had to guess, I would bet that somehow struts is putting 
> FastHashMap$KeySet instances someplace that doesn't get destroyed between 
> redeploys, so when Weblogic unloads the old version of the class, and loads 
> the new one, then something attempts to access the old one, you get the error.
> The "someplace that doesn't get destroyed between redeploys" could even be the 
> session, as I think we have Weblogic set up to persist the sessions between 
> server bounces, which I presume means they are also persisted across redeploys.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org