首页 文章

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

提问于
浏览
1

我正在将应用程序迁移到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)at at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276)at com.ibm.ws.webcontainer.WebContainer.handle在com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583)的com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)的com请求(WebContainer.java:931)位于com的com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:504)的.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:445) .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的com.ibm.ws.ssl.channel.impl.SSLConnectionLink $ MyReadCompletedCallback.complete(SSLConnectionLink.java:639) .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上的com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) .async.AsyncFuture.completed(AsyncFuture.java:138)位于com.ibm.io.async.Rsult完整(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)

1 回答

  • 8

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

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

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

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

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

    HTH

    Manglu

相关问题