程序从Tomcat移植到websphere6.1上的问题
我的websphere环境是WAS6.1+jdk1.5(IBM),程序移植到websphere上后总是出现如下的错误,从错误类型上来看,大致是说response已经提交了,不能再次commit。再网上也看到有人遇到了类似的问题,不知道有人解决没有。下面是后台打印出来的错误。00000045 SRTServletRes W WARNING: Cannot set status. Response already committed.
00000045 SRTServletRes W WARNING: Cannot set header. Response already committed.
前台页面打印的错误如下:
Error page exception
The server cannot use the error page specified for your application to handle the Original Exception printed below. Please see the Error Page Exception below for a description of the problem with the specified error page.
Original Exception:
Error Message: SRVE0190E: ??????/paginate.action
Error Code: 404
Target Servlet: null
Error Stack:
java.io.FileNotFoundException: /paginate.action
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:355)
at com.ibm.ws.wswebcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:111)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3107)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:238)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811)
at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1425)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:92)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:193)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:725)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:847)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1498)
Error Page Exception:
Error Message: SRVE0199E: ???? OutputStream
Error Code: 0
Target Servlet: null
Error Stack:
java.lang.IllegalStateException: SRVE0199E: ???? OutputStream
at com.ibm.ws.webcontainer.srt.SRTServletResponse.getWriter(SRTServletResponse.java:528)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:187)
at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:175)
at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:225)
at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:170)
at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:138)
at com.ibm._jsp._404._jspService(_404.java:76)
at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:85)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:907)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:118)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:696)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:641)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:475)
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463)
at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:115)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:168)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:606)
at com.ibm.ws.webcontainer.webapp.WebApp.sendError(WebApp.java:2676)
at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:586)
at com.ibm.ws.wswebcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:111)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3107)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:238)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811)
at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1425)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:92)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394)
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213)
at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:193)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:725)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:847)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1498)
--------------------编程问答-------------------- 猜测问题是:错误信息已经发往页面,但是handler又在请求写错误信息,这时候已经找不到错误源了 --------------------编程问答-------------------- 关键问题是这个程序在tomcat上是运行正确的,而且在websphere上也得到了我们想要的运行结果,可是,页面还是报那个错误提示 --------------------编程问答-------------------- 看着你的错误应当是这一句:
java.io.FileNotFoundException: /paginate.action
你可以把这个路径改为绝对路径如<%=context_url%>/paginate.action
--------------------编程问答-------------------- 大家没有遇到过这个问题吗,再顶一下,对了我用的是ecside的分页控件,如下所示:
<ec:table items="records" var="invoice"
action="${pageContext.request.contextPath}/paginate.action"
sortable="false" title="" xlsFileName=""
pdfFileName="" csvFileName=""
易做图Content="status|pagesize|navigation"
maxRowsExported="400"
pageSizeList="max:310,5,10,15,30,50,100,all" minColWidth="20"
resizeColWidth="false" editable="false" >
这个action我也试过用绝对路径写,但是还是报错,哪位大侠知道啊,帮帮忙啊 --------------------编程问答-------------------- 用相对路径是不应该出现问题的。是不是编码的问题,或者是在你的/paginate.action前有空格。
从tomcat往websphere上移植是会有意料不到的问题,websphere对程序的要求很严格,最好检查你的工程,确认完好再重新发布。 --------------------编程问答-------------------- 我也想知道,正在找這方面的資料~~~~~ --------------------编程问答-------------------- 楼上这个问题怎么解决的
补充:企业软件 , WebSphere