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