如果lib/ext中存在struts.jar 1.2.7,则不会出现Websphere管理控制台

1 windows websphere

我正在将应用程序迁移到WAS 7.0(修订包13).该应用程序使用了许多位于Appserver\lib\ext目录中的jar.如果在调用WAS管理控制台时存在struts.jar(1.2.7),则会崩溃并显示错误404屏幕(如下所示).如果我从lib\ext删除struts.jar管理控制台工作,我的应用程序自然需要它.WAS jar loader首先设置为parent,我的app是parent last.

提前感谢任何建议.

错误屏幕和转储,请注意登录屏幕正常显示,这是在点击"登录"后:

Error404

处理请求时发生错误:%2Fibm%2Fconsole%2Findex.do

消息:org.apache.struts.tiles.DefinitionsFactoryException:解析文件'/WEB-INF/com.ibm.ws.console.core/console-defs.xml'时出现IO错误.连接超时:连接

细节:

javax.servlet.UnavailableException:org.apache.struts.tiles.DefinitionsFactoryException:解析文件'/WEB-INF/com.ibm.ws.console.core/console-defs.xml'时出现IO错误.连接超时:在com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:534)在com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)在COM连接. ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179)在com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:341)在com.ibm.ws.webcontainer.servlet. FilterProxyServlet.dispatch(FilterProxyServlet.java:88)在com.ibm.ws.webcontainer.servlet.FilterProxyServlet.service(FilterProxyServlet.java:62)在com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java: 1657)在com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1597)在com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:131)在com.ibm.ws com.ibm.ws.console.core.servlet.WSCUrlFilter.continueStoring中的.console.core.servlet.WSCUrlFilter.setUpCommandAssistence(WSCUrlFilter.java:933)TaskState(WSCUrlFilter.java:500)在com.ibm.ws.console.core.servlet.WSCUrlFilter.doFilter(WSCUrlFilter.java:321)在com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java: 188)在com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)在com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)在com.ibm.ws .webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)位于com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:997)的com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.invokeFilters (DefaultExtensionProcessor.java:985)在com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:682)在com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3826)在com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276)at com.ibm.ws.webcontainer.WebContainer.handle 请求(WebContainer.java:931)在com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583)在com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)在COM .ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:445)在com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:504)在玉米.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:301)位于com的com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:275) .ibm.ws.ssl.channel.impl.SSLConnectionLink.determineNextChannel(SSLConnectionLink.java:1016)在com.ibm.ws.ssl.channel.impl.SSLConnectionLink $ MyReadCompletedCallback.complete(SSLConnectionLink.java:639)在com.ibm .ws.ssl.channel.impl.SSLReadServiceContext $ SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1772)at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionLi)stener.java:165)在com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)在com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)在com.ibm.io .async.AsyncFuture.completed(AsyncFuture.java:138)在com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)在com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775 )com.ibm.io.async.ResultHandler $ 2.run(ResultHandler.java:905)at com.ibm.ws.util.ThreadPool $ Worker.run(ThreadPool.java:1563)

Man*_*glu 8

WAS控制台使用它自己的Struts版本.

由于你已经放置了不同版本的struts(在classloader中高位 - lib/ext),WAS控制台有问题.

在99.99%的情况下,将这些罐子转储到lib/ext是一个坏主意.

如果需要在多个应用程序之间共享这些jar,则可以使用特定于应用程序的类路径或使用共享库方法.

重新考虑在lib/ext中放置jar的用法.

HTH

Manglu