如何解决该错误?(与Struts有关)

在weblogic部署web工程时总会出现以下错误,struts使用1.1的版本:

2004-8-4 10:55:20 org.apache.struts.action.ActionServlet destroyModules
严重: javax.servlet.UnavailableException: Cannot initialize RequestProcessor of
class org.apache.struts.action.RequestProcessor: java.lang.ClassNotFoundException: org.apache.struts.action.RequestProcessor
<2004-8-4 上午10时55分20秒 CST> <Error> <HTTP> <BEA-101268> <ServletContext(id=30628850,name=examsignupweb,context-path=/examsignupweb): 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(ActionServl
et.java:769)
at org.apache.struts.action.ActionServlet.destroy(ActionServlet.java:431
)
at weblogic.servlet.internal.ServletStubImpl$ServletDestroyAction.run(Se
rvletStubImpl.java:1029)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
118)
at weblogic.servlet.internal.ServletStubImpl.destroyServlet(ServletStubI
mpl.java:583)
at weblogic.servlet.internal.ServletStubImpl.destroyServlet(ServletStubI
mpl.java:610)
at weblogic.servlet.internal.ServletStubImpl.destroyServlet(ServletStubI
mpl.java:595)
at weblogic.servlet.internal.WebAppServletContext.destroyServlets(WebApp
ServletContext.java:5803)
at weblogic.servlet.internal.WebAppServletContext.destroy(WebAppServletC
ontext.java:5683)
at weblogic.servlet.internal.ServletContextManager.removeContext(Servlet
ContextManager.java:188)
at weblogic.servlet.internal.HttpServer.unloadWebApp(HttpServer.java:740
)
at weblogic.servlet.internal.WebAppModule.destroyContexts(WebAppModule.j
ava:767)
at weblogic.servlet.internal.WebAppModule.rollback(WebAppModule.java:745
)
at weblogic.j2ee.J2EEApplicationContainer.rollbackModule(J2EEApplication
Container.java:3057)
at weblogic.j2ee.J2EEApplicationContainer.rectifyClassLoaders(J2EEApplic
ationContainer.java:1429)
at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContain
er.java:1176)
at weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContain
er.java:1031)
at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.
prepareContainer(SlaveDeployer.java:2602)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.createCon
tainer(SlaveDeployer.java:2552)
at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(S
laveDeployer.java:2474)
at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(Sla
veDeployer.java:798)
at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDepl
oyer.java:507)
at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDep
loyer.java:465)
at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHan
dler.java:25)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
>

缺少apache的common包

可是我的war包下的WEB-INF\lib\commons-collections.jar确实有啊。
而且包中也有
org/apache/commons/collections/FastHashMap$KeySet.class

属于打包问题,理解Weblogic的classloader原理。

更换JBoss部署就可以,因为两者策略不一样。